<?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>
  <body>
    <h1>Releases (2011)</h1>
    <p>Here is the list of official releases made during the year 2011.
    A similar list for <a href="news-2010.html">2010</a> is also available.
    </p>
    <p>It is also possible to just use
    the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
    contact the mailing list and check
    the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a>
    to gauge progress.
    </p>

    <h3>0.9.8: Dec 08 2011</h3>
    <ul>
      <li>Features:<br/>
      Add support for QEMU 1.0 (Jiri Denemark),<br/>
      Add first parts of PPC cpu driver. (Prerna Saxena),<br/>
      Add new API virDomain{Set, Get}BlockIoTune (Lei Li),<br/>
      block_resize: Define the new API (Osier Yang),<br/>
      Add a public API to invoke suspend/resume on the host (Srivatsa S. Bhat),<br/>
      Various improvements for LXC containers (Daniel P. Berrange),<br/>
      Define keepalive protocol and add virConnectIsAlive API (Jiri Denemark),<br/>
      Add support for STP and VLANfiltering (Stefan Berger)<br/>
      </li>

      <li>Documentation:<br/>
      Add documentation for &lt;disk&gt;&lt;source type="dir"&gt; (Christophe Fergeau),<br/>
      Fix typo in virDomainResume API doc (Christophe Fergeau),<br/>
      maint: fix improper use of 'an' (Eric Blake),<br/>
      virsh: translate net-info help (Eric Blake),<br/>
      maint: typo fixes (Eric Blake),<br/>
      virsh: Fix typos in man page (Jiri Denemark),<br/>
      rpc: Fix a typo in virNetClientSendNonBlock documentation (Jiri Denemark),<br/>
      docs: fix grammar of capabilities (Eric Blake),<br/>
      Documentation about chains' priorities, lists of elements etc. (Stefan Berger)<br/>
      </li>

      <li>Portability:<br/>
      spec: don't use chkconfig --list (Eric Blake),<br/>
      build: fix build with older libxml2 (Eric Blake),<br/>
      Conditionalize daemonPath decl for Win32 which lacks UNIX sockets (Daniel P. Berrange),<br/>
      build: reduce warnings from older gcc (Eric Blake),<br/>
      Fix incorrect symbols for virtime.h module breaking Mingw32 (Daniel P. Berrange),<br/>
      build: fix build on Cygwin (Eric Blake),<br/>
      build: fix build at -O2 on rawhide (Eric Blake),<br/>
      Fix build for platforms lacking struct ifreq (Daniel P. Berrange),<br/>
      build: fix 'make dist' without dtrace (Eric Blake),<br/>
      Don't use undocumented __isleap macro (Daniel P. Berrange),<br/>
      virnetsocket: pass XAUTORITY for ssh connection (Christian Franke),<br/>
      Fix build on Mingw32 wrt export of virNetServerGetDBusConn (Daniel P. Berrange),<br/>
      build: fix compile error with no macvtap (Eric Blake),<br/>
      Fix build with polkit0 (Jim Fehlig),<br/>
      Fix strchr call triggering gcc 4.3 &amp; 4.4 bug (Stefan Berger),<br/>
      PATCH: Fix build without MACVTAP (Michael Wood),<br/>
      util: fix compile error on debian (Eli Qiao),<br/>
      Disable numactl on ARM architectures too (Daniel P. Berrange),<br/>
      Add libvirt confdir to files section in mingw32 spec (Daniel P. Berrange),<br/>
      build: fix mingw build of gnulib openpty (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Fix updating of haveTheBuck in RPC client to be race-free (Daniel P. Berrange),<br/>
      Prevent crash of libvirtd when attaching to existing qemu process (Jim Fehlig),<br/>
      qemu: Ignore shutdown event from destroyed domain (Jiri Denemark),<br/>
      remote_driver: don't fail if keepalive check fails (Guido Günther),<br/>
      command: handle empty buffer argument correctly (Eric Blake),<br/>
      client: Check if other thread claims it has the buck before claiming it. (Peter Krempa),<br/>
      Avoid crash in shunloadtest (Daniel P. Berrange),<br/>
      Fix a logic error for setting block I/O (Lei Li),<br/>
      virsh: Allow other escape characters for console (Michal Privoznik),<br/>
      bridge_driver: Don't define network if XML contains more IPv4 addresses. (Peter Krempa),<br/>
      virsh: Fix possible deadlock when virsh is about to exit (Jiri Denemark),<br/>
      util: Plug memory leak on virNetDevMacVLanCreateWithVPortProfile() error path (Alex Jia),<br/>
      util: Plug memory leak on virNetDevBridgeGet() successful path (Alex Jia),<br/>
      uml: Plug memory leak on umlStartVMDaemon() error path (Alex Jia),<br/>
      rpc: Plug memory leak on virNetClientSendInternal() error path (Alex Jia),<br/>
      conf: Plug memory leak on virDomainDefParseXML() error path (Alex Jia),<br/>
      qemu: Plug memory leak onqemuProcessWaitForMonitor() error path (Alex Jia),<br/>
      conf: reject duplicate paths in device weights (Eric Blake),<br/>
      Make logging async signal safe wrt time stamp generation (Daniel P. Berrange),<br/>
      Don't mark suspend as active until we know it is running (Daniel P. Berrange),<br/>
      util: avoid null deref on qcowXGetBackingStore (Alex Jia),<br/>
      virsh: correct return value error (Alex Jia),<br/>
      qemu: fix blkiotune --live --config (Eric Blake),<br/>
      lxc: Fix suspend/resume with freezer cgroup (Jiri Denemark),<br/>
      rpc: Really send non-blocking calls while waiting for another call (Jiri Denemark),<br/>
      util: fix thinko in runIO (Paolo Bonzini),<br/>
      storage: Skip socket and fifo on pool-start (Michal Privoznik),<br/>
      conf: Don't drop console definition on domain restart (Michal Privoznik),<br/>
      qemu: Avoid dereference of NULL pointer (Peter Krempa),<br/>
      nwfilter: Initialize virNWFilterAddIpAddrForIfname return variable (Michal Privoznik),<br/>
      Fix disabling of virtual port profile code on old hosts (Daniel P. Berrange),<br/>
      Fix uninitialized variable in NWfilter IP learning code (Daniel P. Berrange),<br/>
      storage: Fallback to use lvchange first if lvremove fails (Chang Liu),<br/>
      conf: don't modify cpu set string during parsing (Eric Blake),<br/>
      qemu: don't release network actual device twice (Roopa Prabhu),<br/>
      tests: avoid xend ABRT crash report (Eric Blake),<br/>
      Fix use of uninitialized variable in QEMU driver (Daniel P. Berrange),<br/>
      snapshot: refuse to generate names for non-regular backing files (Eric Blake),<br/>
      fix a bug in remoteSerializeTypedParameters (Hu Tao),<br/>
      Don't return a fatal error if receiving unexpected stream data (Daniel P. Berrange),<br/>
      Fix handling of stream EOF (Daniel P. Berrange),<br/>
      storage: forbid rebuilding existing disk storage pools (Guido Günther),<br/>
      qemu: fix domjobabort regression (Eric Blake),<br/>
      fix two bugs in bridge_driver.c (Hu Tao),<br/>
      nwfilter: avoid failure with noexec /tmp (Eric Blake),<br/>
      lxc: free error object to avoid memory leak (Alex Jia),<br/>
      lxc: free 'ttyFDs' array on return from lxcVmStart (Alex Jia)<br/>
      </li>

      <li>Improvements:<br/>
      npiv: Expose fabric_name outside (Osier Yang),<br/>
      Improve error reporting when libvirtd is not installed (Daniel P. Berrange),<br/>
      spec: fix sanlock dependency (Eric Blake),<br/>
      spec: add dmidecode as prereq (Eric Blake),<br/>
      examples: Update event tests for shutdown event (Jiri Denemark),<br/>
      qemu: Rework handling of shutdown event (Jiri Denemark),<br/>
      python: Expose binding for virNodeGetMemoryStats() (Peter Krempa),<br/>
      python: Expose binding for virNodeGetCPUStats() (Peter Krempa),<br/>
      build: require more tools from maintainers (Eric Blake),<br/>
      apparmor: allow tunnelled migrations. (Serge Hallyn),<br/>
      Update of filters to handle multiple IP addresses (Stefan Berger),<br/>
      build: update to latest gnulib (Eric Blake),<br/>
      build: properly skip tests (Eric Blake),<br/>
      spec: mark directories in /var/run as ghosts (Eric Blake),<br/>
      qemu: filter blkio 0-device-weight at two other places (Hu Tao),<br/>
      qemu: amend existing table of device weights (Eric Blake),<br/>
      virsh: fix setting weight and device-weights at the same time (Hu Tao),<br/>
      Add tests for blkdeviotune (Lei Li),<br/>
      Support virDomain{Set, Get}BlockIoTune in the python API (Lei Li),<br/>
      Enable the blkdeviotune command in virsh (Lei Li),<br/>
      Implement virDomain{Set, Get}BlockIoTune for the qemu driver (Lei Li),<br/>
      Support block I/O throttle in XML (Lei Li),<br/>
      Add virDomain{Set, Get}BlockIoTune support to the remote driver (Lei Li),<br/>
      Fix leak build config file path (Daniel P. Berrange),<br/>
      Add internal APIs for dealing with time (Daniel P. Berrange),<br/>
      Remove obsolete virGetPMCapabilities sym from private symbols file (Daniel P. Berrange),<br/>
      Add suspend info to Xen, LXC and UML hypervisor capabilities (Daniel P. Berrange),<br/>
      Remove pointless strdup in node suspend code (Daniel P. Berrange),<br/>
      Do lazy init of host PM features (Daniel P. Berrange),<br/>
      Remove powerMgmt_valid field from capabilities struct (Daniel P. Berrange),<br/>
      Add export of node suspend capabilities APIs (Daniel P. Berrange),<br/>
      Move suspend capabilities APIs out of util.h into virnodesuspend.c (Daniel P. Berrange),<br/>
      Rename suspend capabilities APIs (Daniel P. Berrange),<br/>
      Sanitize virDiscoverHostPMFeature to return a boolean (Daniel P. Berrange),<br/>
      Move the virHostPMCapability enum helpers into capabilities.c (Daniel P. Berrange),<br/>
      Fix capabilities XML to use generic terms for suspend targets (Daniel P. Berrange),<br/>
      Remove internal only virHostPMCapability enum (Daniel P. Berrange),<br/>
      Fix values of PM target type constants (Daniel P. Berrange),<br/>
      blkiotune: add qemu support for blkiotune.device_weight (Hu Tao),<br/>
      blkiotune: add interface for blkiotune.device_weight (Hu Tao),<br/>
      qemu, lxc: drop redundant checks (Eric Blake),<br/>
      API: prevent query of --live and --config at once (Eric Blake),<br/>
      build: fix typo in last patch (Eric Blake),<br/>
      block_resize: Update test file for RPC (Osier Yang),<br/>
      block_resize: Expose the new API to virsh (Osier Yang),<br/>
      block_resize: Implement qemu driver method (Osier Yang),<br/>
      block_resize: Implement qemu monitor functions (Osier Yang),<br/>
      block_resize: Wire up the remote protocol (Osier Yang),<br/>
      examples: Correct the example command to use testnode.xml (Osier Yang),<br/>
      Add virsh command to initiate suspend on the host (Srivatsa S. Bhat),<br/>
      Implement the core API to suspend/resume the host (Srivatsa S. Bhat),<br/>
      Add the remote protocol implementation for virNodeSuspendForDuration (Srivatsa S. Bhat),<br/>
      Add 'Hybrid-Suspend' power management discovery for the host (Srivatsa S. Bhat),<br/>
      virsh: Don't traverse childless nodes in vshNodeIsSuperset (Michal Privoznik),<br/>
      conf: make virt-xml-validate work with vbox domains (Lorin Hochstein),<br/>
      conf: Improve incorrect root element error messages (Michal Privoznik),<br/>
      Refactor initial LXC mem tune / device ACL code (Daniel P. Berrange),<br/>
      Add support for blkio tuning of LXC containers (Daniel P. Berrange),<br/>
      Add support for CPU quota/period to LXC driver (Daniel P. Berrange),<br/>
      Support CPU placement in LXC driver (Daniel P. Berrange),<br/>
      Support NUMA memory placement for LXC containers (Daniel P. Berrange),<br/>
      storage: Refetch file status after open (Michal Privoznik),<br/>
      Fix version numbers for isAlive and setKeepAlive driver APIs (Jiri Denemark),<br/>
      build: Properly generate and check virkeepaliveprotocol-structs (Jiri Denemark),<br/>
      examples: Use virConnectOpenAuth in events-c (Jiri Denemark),<br/>
      qemu: Cancel p2p migration when connection breaks (Jiri Denemark),<br/>
      qemu: Add support for keepalive messages during p2p migration (Jiri Denemark),<br/>
      Add keepalive support into domain-events examples (Jiri Denemark),<br/>
      Implement virConnectIsAlive in all drivers (Jiri Denemark),<br/>
      Introduce virConnectIsAlive API (Jiri Denemark),<br/>
      Implement keepalive protocol in remote driver (Jiri Denemark),<br/>
      Add support for async close of client RPC socket (Jiri Denemark),<br/>
      Implement keepalive protocol in libvirt daemon (Jiri Denemark),<br/>
      virsh: Always run event loop (Jiri Denemark),<br/>
      Introduce virConnectSetKeepAlive (Jiri Denemark),<br/>
      Implement common keepalive handling (Jiri Denemark),<br/>
      rpc: Add some debug messages to virNetClient (Jiri Denemark),<br/>
      rpc: Fix handling of non-blocking calls that could not be sent (Jiri Denemark),<br/>
      rpc: Pass the buck only to the first available thread (Jiri Denemark),<br/>
      nwfilter: remove virConnectPtr from internal API calls (Stefan Berger),<br/>
      API: prefer 'disk' over 'block' or 'path' (Eric Blake),<br/>
      blockstats: support lookup by path in blockstats (Eric Blake),<br/>
      virsh: Increase device-detach intelligence (Michal Prívozník),<br/>
      Enable detection of multiple IP addresses (Stefan Berger),<br/>
      fix error message when using wrong URI alias (Eli Qiao),<br/>
      Pass additional parameter into applyDHCPOnly function (Stefan Berger),<br/>
      nwfilter: use shell variable to invoke 'ip(6)tables' command (Stefan Berger),<br/>
      nwfilter: use shell variable to invoke 'ebtables' command (Stefan Berger),<br/>
      Improve error reporting of failures to apply filtering rules (Stefan Berger),<br/>
      Add documentation for STP filtering support (Stefan Berger),<br/>
      Add test cases for STP traffic filtering (Stefan Berger),<br/>
      Add a 'mac' chain (Stefan Berger),<br/>
      Add strings.h include to capabilities.h for ffs() function prototype (Daniel P. Berrange),<br/>
      build: Update AUTHORS (Osier Yang),<br/>
      Export KVM Host Power Management capabilities (Srivatsa S. Bhat),<br/>
      qemu: Copy console definition from serial (Michal Privoznik),<br/>
      storage: Skips backingStore of virtual snapshot lv (Osier Yang),<br/>
      Add documentation for VLAN filtering support (Stefan Berger),<br/>
      Add test cases for VLAN traffic filtering (Stefan Berger),<br/>
      Don't copy sexpr node value that is an empty string (Jim Fehlig),<br/>
      enable cgroup cpuset by default (Hu Tao),<br/>
      tests: test recent hash addition (Eric Blake),<br/>
      Add test cases for parsing of list values (Stefan Berger),<br/>
      Extend NWFilter parameter parser to cope with lists of values (Stefan Berger),<br/>
      Create rules for each member of a list (Stefan Berger),<br/>
      Rework value part of name-value pairs (Stefan Berger),<br/>
      Add test cases (Stefan Berger),<br/>
      Interleave jumping into chains with filtering rules in 'root' table (Stefan Berger),<br/>
      Extend rule priorities into negative numbers (Stefan Berger),<br/>
      Enable chains with names having a known prefix (Stefan Berger),<br/>
      Extend the filter XML to support priorities of chains (Stefan Berger),<br/>
      Use the actual names of chains in data structure (Stefan Berger),<br/>
      Use scripting for cleaning and renaming of chains (Stefan Berger),<br/>
      Make filter creation in root table more flexible (Stefan Berger),<br/>
      Introduce an internal priority for chains (Stefan Berger),<br/>
      Add function to get hash table's key/value pairs (Stefan Berger),<br/>
      Add support for systemd init service (Daniel P. Berrange),<br/>
      Add support for interfaces with type=direct to LXC (Daniel P. Berrange),<br/>
      Allow creation of plain macvlan devices (Daniel P. Berrange),<br/>
      Refactor LXC network setup to allow future enhancements (Daniel P. Berrange),<br/>
      Add missing 'const' annotations for internal domain conf helpers (Daniel P. Berrange),<br/>
      qemu: Generate -numa option (Bharata B Rao),<br/>
      XML definitions for guest NUMA and parsing routines (Bharata B Rao),<br/>
      virsh: add iface-bridge and iface-unbridge commands (Laine Stump),<br/>
      Allow non-blocking message sending on virNetClient (Daniel P. Berrange),<br/>
      Refactor code for enabling/disabling I/O callback in remote client (Daniel P. Berrange),<br/>
      Split virNetClientSend into 2 methods (Daniel P. Berrange),<br/>
      Refactor code for passing the buck in the remote client (Daniel P. Berrange),<br/>
      Explicitly track whether the buck is held in remote client (Daniel P. Berrange),<br/>
      Remove all linked list handling from remote client event loop (Daniel P. Berrange),<br/>
      util: Add netdev helper functions to private symbols (Eli Qiao),<br/>
      qemu/rbd: improve rbd device specification (Sage Weil),<br/>
      maint: fix build (Stefan Berger),<br/>
      Fix error reporting in port profile parsing/formatting APIs (Daniel P. Berrange),<br/>
      API: add trivial qemu support for VIR_TYPED_PARAM_STRING (Eric Blake),<br/>
      API: remote support for VIR_TYPED_PARAM_STRING (Eric Blake),<br/>
      API: add VIR_TYPED_PARAM_STRING (Eric Blake),<br/>
      maint: use mailmap, not AUTHORS, for secondary addresses (Eric Blake),<br/>
      maint: fix make syntax-check (Stefan Berger),<br/>
      nwfilter: simplify execution of ebiptables scripts (Eric Blake),<br/>
      Remove usage of brctl command line tool (Daniel P. Berrange),<br/>
      Add an API for retrieving the MAC address of an interface (Daniel P. Berrange),<br/>
      Expose MTU management APIs (Daniel P. Berrange),<br/>
      Turn two int parameters into bools in bridge APIs (Daniel P. Berrange),<br/>
      Make all brXXX APIs raise errors, instead of returning errnos (Daniel P. Berrange),<br/>
      build: allow for local gnulib diffs (Eric Blake),<br/>
      qemu: Fix improper error message for disk detaching (Osier Yang),<br/>
      virsh: Add VSH_OFLAG_EMPTY_OK for attach-disk command (Xu He Jie)<br/>
      </li>

      <li>Cleanups:<br/>
      Remove time APIs from src/util/util.h (Daniel P. Berrange),<br/>
      bandwidth: Fix funky identation (Michal Privoznik),<br/>
      qemu: fix a const-correctness issue (Eric Blake),<br/>
      build: fix accidental POTFILES.in regression (Eric Blake),<br/>
      Fix up ordering of private symbols file (Daniel P. Berrange),<br/>
      Move ifaceMacvtapLinkDump and ifaceGetNthParent functions (Daniel P. Berrange),<br/>
      Move functions for dealing with physical/virtual devices (Daniel P. Berrange),<br/>
      Rename APIs for dealing with virtual/physical functions (Daniel P. Berrange),<br/>
      Move virNetDevValidateConfig to virnetdev.c (Daniel P. Berrange),<br/>
      Rename ifaceCheck to virNetDevValidateConfig (Daniel P. Berrange),<br/>
      Move virNetDevGetIPv4Address to virnetdev.c (Daniel P. Berrange),<br/>
      Rename ifaceGetIPAddress to virNetDevGetIPv4Address (Daniel P. Berrange),<br/>
      Move virNetDevGetIndex &amp; virNetDevGetVLanID to virnetdev.c (Daniel P. Berrange),<br/>
      Rename ifaceGetIndex and ifaceGetVLAN (Daniel P. Berrange),<br/>
      Move MAC address replacement functions to virnetdev.c (Daniel P. Berrange),<br/>
      Rename interface MAC address replacement APIs (Daniel P. Berrange),<br/>
      Move the low level macvlan creation APIs (Daniel P. Berrange),<br/>
      Rename low level macvlan creation APIs (Daniel P. Berrange),<br/>
      Rename high level macvlan creation APIs (Daniel P. Berrange),<br/>
      Rename and split the macvtap.c file (Daniel P. Berrange),<br/>
      Rename Macvtap management APIs (Daniel P. Berrange),<br/>
      Remove ifaceSetMac and ifaceGetMac APIs (Daniel P. Berrange),<br/>
      Remove ifaceUp, ifaceDown, ifaceCtrl &amp; ifaceIsUp APIs (Daniel P. Berrange),<br/>
      Move LXC veth.c code into shared utility APIs (Daniel P. Berrange),<br/>
      Rename the LXC veth management APIs and delete duplicated APIs (Daniel P. Berrange),<br/>
      Split src/util/network.{c,h} into 5 pieces (Daniel P. Berrange),<br/>
      Rename virVirtualPortProfileParams &amp; APIs (Daniel P. Berrange),<br/>
      build: drop useless dirent.h includes (Eric Blake),<br/>
      xenapi: remove unused variable (Eric Blake),<br/>
      Remove code instantiating filters on direct interfaces (Stefan Berger),<br/>
      Adjust naming of network device bandwidth management APIs (Daniel P. Berrange),<br/>
      Santize naming of socket address APIs (Daniel P. Berrange),<br/>
      Split bridge.h into three separate files (Daniel P. Berrange),<br/>
      Rename all brXXXX APIs to follow new convention (Daniel P. Berrange),<br/>
      Remove 'brControl' object (Daniel P. Berrange)<br/>
      </li>
    </ul>

    <h3>0.9.7: Nov 08 2011</h3>
    <ul>
      <li>Features:<br/>
      esx: support vSphere 5.x (Patrice LACHANCE),<br/>
      vbox: support for VirtualBox 4.1 (Matthias Bolte),<br/>
      Introduce the virDomainOpenGraphics API (Daniel P. Berrange),<br/>
      Add AHCI support to qemu driver (Jim Fehlig),<br/>
      snapshot: many improvements and 2 new APIs (Eric Blake),<br/>
      api: Add public api for 'reset' (Xu He Jie)<br/>
      </li>

      <li>Documentation:<br/>
      Add &lt;deviceboot&gt; capability. (Philipp Hahn),<br/>
      API: document scheduler parameter names (Eric Blake),<br/>
      improve typed parameter documentation (Eric Blake),<br/>
      fix typo in &lt;disk&gt;/&lt;target&gt; example (Eric Blake),<br/>
      python: Fix documentation of virStream recv (Matthias Bolte),<br/>
      Add documentation about migration. (Daniel P. Berrange),<br/>
      Document filesystem type='block' for LXC (Ryota Ozaki),<br/>
      fix incorrect info about routed networks (Laine Stump),<br/>
      document managed=yes of hostdev passthrough (Eric Blake),<br/>
      trivial spelling fix (Philipp Hahn),<br/>
      Fix virt-sanlock-cleanup documentation (Philipp Hahn),<br/>
      Fix two comments related to error handling (Philipp Hahn),<br/>
      fix network XML documentation (Laine Stump),<br/>
      Clarify semantics of virDomainMigrate2 (Jiri Denemark),<br/>
      Update examples for probing with systemtap (Daniel P. Berrange),<br/>
      fix html bug (Eric Blake),<br/>
      virsh: Update the help information for undefine command. (tangchen),<br/>
      Document STREQ_NULLABLE and STRNEQ_NULLABLE (Guido Günther),<br/>
      Document that ff callbacks need to be invoked from a clean stack. (Guido Günther),<br/>
      formatdomain.html.in: fix tickpolicy (Douglas Schilling Landgraf),<br/>
      virsh: describe attach-interface parameter target (Daniel Veillard),<br/>
      virsh: update man page for cpu_shares parameter (Daniel Veillard),<br/>
      document node device XML (Eric Blake),<br/>
      document virsh nodedev-* commands (Eric Blake),<br/>
      snapshot: fix man page typos (Eric Blake),<br/>
      virsh: Better document --copy-storage migrate options (Jiri Denemark),<br/>
      virsh: Enhance documentation of commands starting jobs (Jiri Denemark),<br/>
      virsh: Improve virsh manual for virsh memtune command (Peter Krempa)<br/>
      </li>

      <li>Portability:<br/>
      build: fix build on platforms without ptsname_r (Eric Blake),<br/>
      build: silence compiler warning on BSD (Eric Blake),<br/>
      build: fix linking on BSD (Eric Blake),<br/>
      remote: fix mingw32 build (Laine Stump),<br/>
      build: fix deep VPATH builds (Eric Blake),<br/>
      Use ENAMETOOLONG if the socket path is longer than UNIX_PATH_MAX (Guido Günther),<br/>
      build: avoid RHEL 5 build failure on LXC (Eric Blake),<br/>
      build: use gnulib fdatasync (Eric Blake),<br/>
      Fix virFileOpenTty definition on Win32 (Daniel P. Berrange),<br/>
      compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 (Xu He Jie),<br/>
      Fix VPATH build (Jiri Denemark),<br/>
      build: fix 'make dist' error (Wen Congyang),<br/>
      Fix syntax problem in mingw32-libvirt.spec.in (Daniel P. Berrange),<br/>
      spec: mingw cleanups (Eric Blake),<br/>
      build: fix mingw build without sasl (Eric Blake),<br/>
      build: fix 'make rpm' (Eric Blake),<br/>
      build: fix 'make distcheck' (Eric Blake),<br/>
      disable xenlight for non-Xen platforms (Dan Horák),<br/>
      build: Fix VPATH build with new probes (Jiri Denemark),<br/>
      build: fix 'make distcheck' with pdwtags installed (Eric Blake),<br/>
      spec: F15 still uses cgconfig, RHEL lacks hyperv (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Fix sending/receiving of FDs when stream returns EAGAIN (Daniel P. Berrange),<br/>
      lxc: avoid use-after-free (Eric Blake),<br/>
      conf: Don't free uninitialized pointer (Jiri Denemark),<br/>
      Fix default console type setting (Daniel P. Berrange),<br/>
      Fix crash formatting virtio console (Daniel P. Berrange),<br/>
      Fix off-by-one printing month in logging code (Daniel P. Berrange),<br/>
      Add missing param initialization in qemuDomainBlockStatsFlags (Daniel P. Berrange),<br/>
      fix crash when starting network (Wen Congyang),<br/>
      Don't overwrite error message during VM cleanup (Daniel P. Berrange),<br/>
      Correctly handle '*' in /etc/filesystems (Daniel P. Berrange),<br/>
      Fix URI alias prefix matching (Wen Ruo Lv),<br/>
      ServerClient: Flush cached data (Michal Privoznik),<br/>
      Fix storage pool source comparison to avoid comparing with self (Daniel P. Berrange),<br/>
      qemu: plug memory leak (Alex Jia),<br/>
      qemu: Restore the original states of PCI device when restarting daemon (Osier Yang),<br/>
      macvtap: Fix error return value convention/inconsistencies (Roopa Prabhu),<br/>
      pci address conflict when virtio disk with drive type (Xu He Jie),<br/>
      qemu: plug memory leak (Alex Jia),<br/>
      qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br/>
      util: Fix virUUIDGeneratePseudoRandomBytes (Ryota Ozaki),<br/>
      lxc: Revert zeroing count of allocated items if VIR_REALLOC_N fails (Peter Krempa),<br/>
      lxc: avoid null deref on lxcSetupLoopDevices failure (Alex Jia),<br/>
      lxc: avoid missing '{' in the function (Alex Jia),<br/>
      storage: avoid null deref on qemu-img failure (Eric Blake),<br/>
      storage: make previous leak less likely to regress (Eric Blake),<br/>
      storage: plug iscsi memory leak (Eric Blake),<br/>
      qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br/>
      qemu: Do not wait if the PCI device is not managed when reattaching (Osier Yang),<br/>
      Add missing strdup return value check (Roopa Prabhu),<br/>
      macvtap: avoid invalid free (Roopa Prabhu),<br/>
      util: Fix typo in virGetHostname description (Jiri Denemark),<br/>
      macvtap: plug memory leak for 802.1Qbh (Eric Blake),<br/>
      qemu: plug memory leak on migration (Eric Blake),<br/>
      conf: plug memory leak on error (Eric Blake),<br/>
      storage: plug memory leak on error (Eric Blake),<br/>
      util: Make getaddrinfo failure nonfatal in virGetHostname (Jiri Denemark),<br/>
      qemu: fix text block info parsing (Eric Blake),<br/>
      qemu: avoid text monitor null deref (Eric Blake),<br/>
      qemu: check for json allocation failure (Eric Blake),<br/>
      virFDStream: close also given errfd (fd leak) (Marc-André Lureau),<br/>
      command: avoid fd leak on failure (Eric Blake),<br/>
      qemu: Check for domain being active on successful job acquire (Michal Privoznik),<br/>
      xen: Return tap2 for tap2 disks (Philipp Hahn),<br/>
      xen: fix PyGrub boot device order (Philipp Hahn),<br/>
      build: fix 'make check' linkage with dtrace (Eric Blake),<br/>
      Fix deps for probes.o to ensure correct build ordering (Daniel P. Berrange),<br/>
      If receiving a stream error, mark EOF on the stream (Daniel P. Berrange),<br/>
      xen_xs: Guard against set but empty kernel argument (Guido Günther),<br/>
      snapshot: avoid accidental renames with snapshot-edit (Eric Blake),<br/>
      storage: Do not use comma as seperator for lvs output (Osier Yang),<br/>
      qemuDomainAttach: Initialize pidfile variable (Michal Privoznik),<br/>
      lxc: fix logic bug (Eric Blake),<br/>
      Don't send back unknown program errors for async messages (Daniel P. Berrange),<br/>
      Fix deadlock when the RPC program is unknown (Daniel P. Berrange),<br/>
      remote_driver: Avoid double free in EventControl building (Michal Privoznik),<br/>
      xenParseXM: don't dereference NULL pointer when script is empty (Guido Günther),<br/>
      qemu: Fix migration with dname (Jiri Denemark),<br/>
      virsh: do not unlink NULL file (Marc-André Lureau),<br/>
      qemu: Fix error message mentioning VNC instead of SPICE (Peter Krempa),<br/>
      qemu: Check for ejected media during startup and migration (Michal Privoznik),<br/>
      qemu: add return value check (Alex Jia),<br/>
      qemu: Always remove domain object if MigratePrepare fails (Jiri Denemark),<br/>
      fix AppArmor driver for pipe character devices (Jamie Strandboge),<br/>
      daemon: Don't remove pidfiles in init scripts (Peter Krempa),<br/>
      storage: Do not break the whole vol lookup process in the middle (Osier Yang),<br/>
      Fix synchronous reading of stream data (Daniel P. Berrange)<br/>
      </li>

      <li>Improvements:<br/>
      Add missing defaultConsoleTargetType callback for AppArmour (Daniel P. Berrange),<br/>
      Fix naming of constant for disk event (Daniel P. Berrange),<br/>
      lxc: use common code for process cleanup (Eric Blake),<br/>
      Set aliases for LXC/UML console devices (Daniel P. Berrange),<br/>
      Default console target type with no &lt;target&gt; element (Daniel P. Berrange),<br/>
      Add support for multiple consoles in LXC (Daniel P. Berrange),<br/>
      Rewrite LXC I/O forwarding to use main event loop (Daniel P. Berrange),<br/>
      Allow multiple consoles per virtual guest (Daniel P. Berrange),<br/>
      virnetsockettest: Use a temporary directory in /tmp (Guido Günther),<br/>
      xen: allow getting &lt; max typed parameters (Eric Blake),<br/>
      lxc: allow getting &lt; max typed parameters (Eric Blake),<br/>
      libxl: allow getting &lt; max typed parameters (Eric Blake),<br/>
      esx: allow getting &lt; max typed parameters (Eric Blake),<br/>
      qemu: allow getting &lt; max typed parameters (Eric Blake),<br/>
      Add support for probing filesystem with libblkid (Daniel P. Berrange),<br/>
      Fix error message when failing to detect filesystem (Daniel P. Berrange),<br/>
      Workaround for broken kernel autofs mounts (Daniel P. Berrange),<br/>
      Ensure errno is valid when returning from lxcContainerWaitForContinue (Daniel P. Berrange),<br/>
      Create /var/lib/libvirt/filesystems for LXC trees (Daniel P. Berrange),<br/>
      esx: Support folders in the path of vpx:// connection URIs (Matthias Bolte),<br/>
      qemu: pass virConnectPtr into Domain{Attach,Detach}* (Sage Weil),<br/>
      vbox: Support shared folders (Matthias Bolte),<br/>
      xenapi: Improve error reporting in xenapiOpen once again (Matthias Bolte),<br/>
      Use a common xml type for ceph secret usage. (Josh Durgin),<br/>
      storage: add auth to virDomainDiskDef (Josh Durgin),<br/>
      secret: add Ceph secret type (Sage Weil),<br/>
      Implement RPC driver support for virDomainOpenGraphics (Daniel P. Berrange),<br/>
      Extend RPC server to allow FD passing (Daniel P. Berrange),<br/>
      Add client side support for FD passing (Daniel P. Berrange),<br/>
      Extend RPC protocol to allow FD passing (Daniel P. Berrange),<br/>
      Add APIs for virNetSocket for sending/receiving file descriptors (Daniel P. Berrange),<br/>
      Wire up QEMU implementation for virDomainOpenGraphics (Daniel P. Berrange),<br/>
      Extend graphics event to include UNIX socket (Daniel P. Berrange),<br/>
      virsh: Fix error message on vol-create-from failure (Ryota Ozaki),<br/>
      bridge: modify for use when sVirt is enabled with qemu (Tyler Coumbes),<br/>
      Use virXMLSaveFile when writing XML config (Jiri Denemark),<br/>
      Introduce virXMLSaveFile as a wrapper for virFileRewrite (Jiri Denemark),<br/>
      Introduce virFileRewrite for safe file rewrite (Jiri Denemark),<br/>
      Add a systemtap script for watching QEMU monitor interactions (Daniel P. Berrange),<br/>
      qemu: simplify use of HAVE_YAJL (Eric Blake),<br/>
      snapshot: simplify indentation of disk encryption xml (Eric Blake),<br/>
      snapshot: simplify indentation of nwfilter (Eric Blake),<br/>
      Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs (Daniel P. Berrange),<br/>
      nwfilter: extend schema to support new targets (Stefan Berger),<br/>
      util: Add virFileAccessibleAs to private symbols (Michal Privoznik),<br/>
      startupPolicy: Emit event on disk source dropping (Michal Privoznik),<br/>
      qemu: implement startupPolicy (Michal Privoznik),<br/>
      qemu: Move device alias assigning before command line construction (Michal Privoznik),<br/>
      util: Create virFileAccessibleAs function (Michal Privoznik),<br/>
      conf: Introduce optional startupPolicy attribute for cdrom and floppy (Michal Privoznik),<br/>
      waitpid: improve safety (Eric Blake),<br/>
      virsh: Fix vol-info's 'Type' output (Ryota Ozaki),<br/>
      support continue/return targets in nwfilter (David L Stevens),<br/>
      snapshot: simplify indentation of network xml (Eric Blake),<br/>
      snapshot: simplify indentation of cpu features (Eric Blake),<br/>
      snapshot: simplify indentation of sysinfo (Eric Blake),<br/>
      snapshot: test domainsnapshot indentation (Eric Blake),<br/>
      snapshot: indent domain xml when nesting (Eric Blake),<br/>
      virbuf: add auto-indentation support (Eric Blake),<br/>
      virbuf: more detailed error reporting (Eric Blake),<br/>
      virbuf: improve testsuite reporting (Eric Blake),<br/>
      virbuf: fix const-correctness (Eric Blake),<br/>
      qemu: allow json in domxml-to-native (tangchen),<br/>
      support setting bandwidth from virsh attach-interface (Hu Tao),<br/>
      lxc: use hand-rolled code in place of unlockpt and grantpt (Serge E. Hallyn),<br/>
      qemu: Test name-space handling (Philipp Hahn),<br/>
      qemu: Fix name-space handling (Philipp Hahn),<br/>
      Replace virBufferAdd with virBufferAddLit for const string (Daniel P. Berrange),<br/>
      Allow for URI aliases when connecting to libvirt (Daniel P. Berrange),<br/>
      Add support for autodestroy of guests to the LXC and UML drivers (Daniel P. Berrange),<br/>
      Use virBufferEscapeShell in cmdEcho (Guido Günther),<br/>
      qemu: replace qemuMonitorEscapeShell by virBufferEscapeShell (Guido Günther),<br/>
      virBufferEscapeShell: Emit quotes for the empty string (Guido Günther),<br/>
      snapshot: detect when qemu lacks disk-snapshot support (Eric Blake),<br/>
      virBufferEscapeShell: Fix escaping of single quotes. (Guido Günther),<br/>
      compile: Add a missing function 'pciDeviceListFind' to libvirt_private.syms (Xu He Jie),<br/>
      snapshot: implement LIST_LEAVES flag in esx (Eric Blake),<br/>
      qemu: Relax -no-shutdown check to [0.14.0, 0.15.0] (Jiri Denemark),<br/>
      qemu: Honor the orginal PCI dev properties when reattaching (Osier Yang),<br/>
      qemu: Do not reattach PCI device used by other domain when shutdown (Osier Yang),<br/>
      Xen: Fake versions in xencapstest (Philipp Hahn),<br/>
      Xen: move versions to struct (Philipp Hahn),<br/>
      Use virBufferEscapeShell in virNetSocketNewConnectSSH (Guido Günther),<br/>
      Add virBufferEscapeShell (Guido Günther),<br/>
      Autodetect if the remote nc command supports the -q option (Guido Günther),<br/>
      qemu: Make sure BeginJob is always followed by EndJob (Jiri Denemark),<br/>
      qemu: Log debug messages when changing job (Jiri Denemark),<br/>
      build: add compiler attributes to virUUIDParse (Eric Blake),<br/>
      Fix typo in lxc_controller (Serge E. Hallyn),<br/>
      build: update to latest gnulib (Eric Blake),<br/>
      events: Propose a separate lock for event queue (Michal Privoznik),<br/>
      qemu: Implement VIR_DUMP_RESET (Michal Privoznik),<br/>
      virDomainCoreDump: Introduce VIR_DUMP_RESET flag (Michal Privoznik),<br/>
      example: Support debug output and loop switch (Philipp Hahn),<br/>
      example: Redirect --help output to stdout/stderr (Philipp Hahn),<br/>
      example: Fix argument handling (Philipp Hahn),<br/>
      snapshot: implement LIST_LEAVES flag in qemu (Eric Blake),<br/>
      snapshot: add API for filtering by leaves (Eric Blake),<br/>
      tests: Add support for skipping tests (Philipp Hahn),<br/>
      Introduce &lt;driver&gt; under &lt;filesystem&gt; to support open-by-handle (Harsh Prateek Bora),<br/>
      buf: implement generic virBufferEscape (Sage Weil),<br/>
      daemon: Always advertise libvirtd service (Osier Yang),<br/>
      snapshot: take advantage of new relations (Eric Blake),<br/>
      snapshot: track qemu snapshot relations (Eric Blake),<br/>
      snapshot: framework for more efficient relation traversal (Eric Blake),<br/>
      snapshot: use correct qmp monitor command (Eric Blake),<br/>
      snapshot: virsh shorthand for operating on current snap (Eric Blake),<br/>
      build: ship helper scripts (Eric Blake),<br/>
      Rewrite all the DTrace/SystemTAP probing (Daniel P. Berrange),<br/>
      Fix missing lock calls on virNetTLSContextRef (Daniel P. Berrange),<br/>
      Refactor TLS to facilitate dynamic probing (Daniel P. Berrange),<br/>
      Add virSocketRef API to facilitate dynamic probing (Daniel P. Berrange),<br/>
      Make libvirt.so include the RPC server code (Daniel P. Berrange),<br/>
      snapshot: implement snapshot children listing in esx (Eric Blake),<br/>
      snapshot: implement snapshot children listing in qemu (Eric Blake),<br/>
      snapshot: remote protocol for snapshot children (Eric Blake),<br/>
      snapshot: virsh fallback for snapshot-list --descendants --from (Eric Blake),<br/>
      snapshot: virsh fallback for snapshot-list --from children (Eric Blake),<br/>
      snapshot: virsh fallback for snapshot-list --tree --from (Eric Blake),<br/>
      snapshot: virsh snapshot-list and children (Eric Blake),<br/>
      xen: add error handling to UUID parsing (Guido Günther),<br/>
      maint: typo fixes (Eric Blake),<br/>
      snapshot: sort snapshot-list --tree (Eric Blake),<br/>
      snapshot: simplify redefinition of disk snapshot (Eric Blake),<br/>
      snapshot: let virsh edit disk snapshots (Eric Blake),<br/>
      snapshot: fix virsh error message typo (Eric Blake),<br/>
      qemu: add separate rerror_policy for disk errors (Laine Stump),<br/>
      qemu: leave rerror policy at default when enospace is requested (Laine Stump),<br/>
      qemu: enable multifunction for older qemu (Eric Blake),<br/>
      Make LXC work with new network configuration types (Daniel P. Berrange),<br/>
      init: raise default system aio limits (Eric Blake),<br/>
      maint: fix minor issues in virterror public header (Eric Blake),<br/>
      snapshot: enforce REVERT_FORCE on qemu (Eric Blake),<br/>
      snapshot: use qemu-img on disks in use at time of snapshot (Eric Blake),<br/>
      snapshot: add REVERT_FORCE to API (Eric Blake),<br/>
      snapshot: implement snapshot roots listing in vbox (Eric Blake),<br/>
      qemu: Don't fail virDomainGetInfo if we can't update balloon info (Jiri Denemark),<br/>
      snapshot: simplify esx snapshot name lookup (Eric Blake),<br/>
      snapshot: implement snapshot roots listing in esx (Eric Blake),<br/>
      qemu: correct misspelled 'enospc' option, and only use for werror (Laine Stump),<br/>
      snapshot: better virsh handling of missing current, parent (Eric Blake),<br/>
      Allow passing of command line args to LXC container (Daniel P. Berrange),<br/>
      Add support for bandwidth filtering on LXC guests (Daniel P. Berrange),<br/>
      network: fill in bandwidth from portgroup for all forward modes (Laine Stump),<br/>
      bridge_driver.c: Fix autoconf setting (Neil Wilson),<br/>
      Set to NULL members that have been freed to prevent crashes (Marc-André Lureau),<br/>
      snapshot: implement getparent for vbox (Eric Blake),<br/>
      snapshot: implement getparent for esx (Eric Blake),<br/>
      qemu: make PCI multifunction support more manual (Laine Stump),<br/>
      lvm storage backend: handle command_names=1 in lvm.conf (Serge E. Hallyn),<br/>
      qemu: Check for outstanding async job too (Michal Privoznik),<br/>
      virsh: Add 'reset' command for virsh (Xu He Jie),<br/>
      remote: Implement 'reset' for remote driver (Xu He Jie),<br/>
      qemu: Implement 'reset' for qemu driver (Xu He Jie),<br/>
      logging: Add date to log timestamp (Jiri Denemark),<br/>
      logging: Do not log timestamp through syslog (Jiri Denemark),<br/>
      hyperv: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br/>
      esx: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br/>
      snapshot: implement getparent in qemu (Eric Blake),<br/>
      snapshot: add virsh snapshot-list --tree (Eric Blake),<br/>
      snapshot: refactor virsh snapshot parent computation (Eric Blake),<br/>
      snapshot: remote protocol for getparent (Eric Blake),<br/>
      security: properly chown/label bidirectional and unidirectional fifos (Laine Stump),<br/>
      qemu: Preserve fakeReboot flag in domain status (Jiri Denemark),<br/>
      qemu: Finish domain shutdown on reconnect (Jiri Denemark),<br/>
      qemu: Check domain status details when reconnecting monitor (Jiri Denemark),<br/>
      virsh: Allow using complete &lt;capabilities&gt; elements with cpu-baseline (Peter Krempa),<br/>
      virsh: Allow using domain and capabilities XMLs with cpu-compare (Peter Krempa),<br/>
      qemu: add ability to set PCI device "rombar" on or off (Laine Stump),<br/>
      qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) (Jiri Denemark),<br/>
      virLockManagerNopInit: Rename flags to unused_flags (Michal Privoznik),<br/>
      debug: Annotate some variables as unused (Michal Privoznik),<br/>
      maint: update authors (Peter Krempa),<br/>
      Add unsafe cache mode support for disk driver (Oskari Saarenmaa),<br/>
      selinux: Correctly report warning if virt_use_nfs not set (Michal Privoznik),<br/>
      virsh: Do not ignore the specified flags for cmdSaveImageDefine (Osier Yang),<br/>
      qemu: Transfer inactive XML among cookie (Michal Privoznik)<br/>
      </li>

      <li>Cleanups:<br/>
      Remove translations in socket test case (Daniel P. Berrange),<br/>
      test: drop redundant check (Eric Blake),<br/>
      startupPolicty: Minor cleanups (Michal Privoznik),<br/>
      secret: fix bad patch application (Eric Blake),<br/>
      Remove trailing whitespace from all xfig files (Daniel P. Berrange),<br/>
      Fix typo in virFileAccessibleAs (Daniel P. Berrange),<br/>
      snapshot: minor cleanups from reviewing indentation (Eric Blake),<br/>
      build: ignore test executable (Eric Blake),<br/>
      esx: drop dead code to silence Coverity (Eric Blake),<br/>
      snapshot: drop dead parameters (Eric Blake),<br/>
      qemu: silence Coverity false positive (Eric Blake),<br/>
      conf: remove unused VIR_ENUM_DECL (Laine Stump)<br/>
      </li>
    </ul>

    <h3>0.9.6: Sep 22 2011</h3>
    <ul>
      <li>Portability:<br/>
      build: silence warning on 32-bit build (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      snapshot: fix logic bug in qemu undefine (Eric Blake),<br/>
      sanlock: fix memory leak (Eric Blake),<br/>
      virsh: fix regression in argv parsing (Eric Blake),<br/>
      storage: Wait udev events are handled before removing lvm vol (Osier Yang),<br/>
      qemu: avoid dereferencing a NULL pointer (Alex Jia),<br/>
      qemu: Avoid loop of fake reboots (Jiri Denemark),<br/>
      qemu: Fix shutdown regression with buggy qemu (Jiri Denemark),<br/>
      remote: fix crash on OOM (Eric Blake)<br/>
      </li>

      <li>Improvements:<br/>
      snapshot: also delete empty directory (Eric Blake),<br/>
      snapshot: remove snapshot metadata on transient exit (Eric Blake),<br/>
      snapshot: prepare to remove transient snapshot metadata (Eric Blake),<br/>
      virsh: More friendly err if no pool is specified for looking up a vol (Osier Yang),<br/>
      tests: improve test failure diagnosis (Oskari Saarenmaa),<br/>
      API: prefer to use NULLSTR macro (Osier Yang),<br/>
      xen: use typical allocations (Eric Blake),<br/>
      virsh: Remove useless codes of cmdVolPath (Osier Yang)<br/>
      </li>
    </ul>

    <h3>0.9.5: Sep 20 2011</h3>
    <ul>
      <li>Features:<br/>
      many snapshot improvements (Eric Blake),<br/>
      latency: Define new public API and structure (Osier Yang),<br/>
      USB2 and various USB improvements (Marc-André Lureau),<br/>
      storage: Add fs pool formatting (Osier Yang),<br/>
      Add public API for getting migration speed (Jim Fehlig),<br/>
      Add basic driver for Microsoft Hyper-V (Matthias Bolte)<br/>
      </li>

      <li>Documentation:<br/>
      virsh: tweak previous domblkstat patch (Eric Blake),<br/>
      virsh: doc: Fix supported driver types for attach-disk command (Peter Krempa),<br/>
      doc: Add statment about permissions needed to do a core dump (Peter Krempa),<br/>
      snapshot: tweak snapshot-create-as diskspec docs (Eric Blake),<br/>
      qemu_api: doc improvements (Eric Blake),<br/>
      virsh: Fix command name in man page (Peter Krempa),<br/>
      fix incorrect option in send-key (Alex Jia),<br/>
      virsh: improve send-key documentation (Eric Blake),<br/>
      hyperv: Add basic documentation (Matthias Bolte),<br/>
      schedinfo: update man page about virsh schedinfo command (Taku Izumi),<br/>
      virsh: Clarify documentation of -d option (Jiri Denemark),<br/>
      schedinfo: add missing documentation (Taku Izumi),<br/>
      Improve tokenizing of linkable terms (Philipp Hahn),<br/>
      Add some docs about the RPC protocol and APIs (Daniel P. Berrange),<br/>
      Align table cells on top (Philipp Hahn),<br/>
      use IPv6 addresses in range reserved for documentation (Laine Stump),<br/>
      describe new virtual switch configuration in network XML docs (Laine Stump)<br/>
      </li>

      <li>Portability:<br/>
      Update to require sanlock 1.8 for license compliance (Daniel P. Berrange),<br/>
      build: work around lack of MacOS fdatasync (Eric Blake),<br/>
      python: Fix bindings generated in VPATH build (Jiri Denemark),<br/>
      build: storage: Macro 'MKFS' is undefined on some platforms. (Peter Krempa),<br/>
      build: storage: Conditionaly compiled structure caused build fail on OSX (Peter Krempa),<br/>
      Avoid using "devname" as an identifier. (Peter Krempa),<br/>
      mingw: Don't use interface as an identifier (Matthias Bolte),<br/>
      esx: Use $(PYTHON) instead of the shebang to run the generator (Matthias Bolte),<br/>
      build: work around older systemtap header (Eric Blake),<br/>
      build: fix compilation on mingw64 (Eric Blake),<br/>
      build: fix virnetsocket on mingw (Eric Blake),<br/>
      build: fix virpidfile on mingw (Eric Blake),<br/>
      maint: fix some compilation issues on non-linux platforms (part 2) (Stefan Berger),<br/>
      maint: fix some compilation issues on non-linux platforms (Stefan Berger),<br/>
      Fix detection of GnuTLS 1.x.y (Matthias Bolte)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Fix crash on events due to allocation errors (Daniel Veillard),<br/>
      conf: Assign newDef of active domain as persistent conf if it is NULL (Osier Yang),<br/>
      storage: Ensure the device path exists before refreshing disk pool (Osier Yang),<br/>
      daemon: Error and exit if specified value for timeout is not valid (Osier Yang),<br/>
      vmx: avoid memory leak (ajia@redhat.com),<br/>
      util: avoid memory leak (ajia@redhat.com),<br/>
      remote: avoid memory leak (ajia@redhat.com),<br/>
      qemu: avoid memory leak (ajia@redhat.com),<br/>
      daemon: avoid memory leak (ajia@redhat.com),<br/>
      Prevent crash from dlclose() of libvirt.so (Daniel P. Berrange),<br/>
      qemu: add return value check (Alex Jia),<br/>
      Avoid crash on restart if running guest has filterref (Stefan Berger),<br/>
      conf: avoid memory leak on virDomainDefParseXML (Alex Jia),<br/>
      Fix build after commit 829bce17 (Jim Fehlig),<br/>
      conf: add missing break in virDomainAuditRedirdev (Marc-André Lureau),<br/>
      snapshot: ABI stability must include memory sizing (Eric Blake),<br/>
      make: Fix 'make syntax-check' failing. (Peter Krempa),<br/>
      snapshot: fix double free of qemuImgBinary (Guannan Ren),<br/>
      virnetsocket: Pass KRB5CCNAME env variable (Michal Privoznik),<br/>
      Fix URL-escaping for domainDefine (Philipp Hahn),<br/>
      snapshot: fix regression with system checkpoints (Eric Blake),<br/>
      Don't treat pci_system_init failure as fatal if no PCI bus is present (Soren Hansen),<br/>
      rpc: avoid memory leak on virNetTLSContextValidCertificate (Alex Jia),<br/>
      tests: avoid memory leak on testTLSSessionInit (Alex Jia),<br/>
      libxl: avoid a dereference of a null pointer (Alex Jia),<br/>
      blockinfo: fix qemu regression in handling disk name (Eric Blake),<br/>
      esx: Fix managed object lookup with optional occurrence (Matthias Bolte),<br/>
      Threadpool: Initialize new dynamic workers (Michal Privoznik),<br/>
      Default USB device is on slot 1 function 2 (Marc-André Lureau),<br/>
      Fix localtime handling for Xen-PV domains (Philipp Hahn),<br/>
      snapshot: fix corner case on OOM during creation (Eric Blake),<br/>
      API: Init conn in case of it might be used uninitialized (Osier Yang),<br/>
      qemu: detect incomplete save files (Eric Blake),<br/>
      reserve slot 1 on pci bus0 (Wen Congyang),<br/>
      libvirtd: create run dir when running at non-root user (Xu He Jie),<br/>
      Don't overwrite errors from xend_{get,req} (Jim Fehlig),<br/>
      virsh: avoid memory leak on cmdVolCreateAs (Alex Jia),<br/>
      Fix tracking of RPC messages wrt streams (Daniel P. Berrange),<br/>
      Avoid use-after-free on streams, due to message callbacks (Daniel P. Berrange),<br/>
      Fix parted sector size assumption (Daniel P. Berrange),<br/>
      qemu: Fix a regression of domain save (Osier Yang),<br/>
      lxc: Fix incorrect changes on error codes. (Osier Yang),<br/>
      Stop libxl driver polluting logs on non-Xen hosts (Daniel P. Berrange),<br/>
      Fix memory leak parsing 'relabel' attribute in domain security XML (Daniel P. Berrange),<br/>
      Fix memory leak dispatching domain events (Daniel P. Berrange),<br/>
      Don't leak memory if a cgroup is mounted multiple times (Daniel P. Berrange),<br/>
      stream: remove redundant reference to client while sending stream data (Guannan Ren),<br/>
      Fix sanlock socket security labelling (Daniel P. Berrange),<br/>
      Fix incorrect path length check in sanlock lockspace setup (Daniel P. Berrange),<br/>
      snapshot: forbid snapshot on autodestroy domain (Eric Blake),<br/>
      Fix error detection in device change (Philipp Hahn),<br/>
      qemu: properly label outgoing pipe for tunneled migration (Eric Blake),<br/>
      Fix persistent migration config save (KAMEZAWA Hiroyuki),<br/>
      rpc: Don't close connection if program is unknown (Jiri Denemark),<br/>
      remote: Refuse connecting to remote socket (Michal Privoznik),<br/>
      Detect errors from the 'sendkey' command (Daniel P. Berrange),<br/>
      qemu: Correctly label migration TCP socket (Jiri Denemark),<br/>
      Do not try to cancel non-existent migration on source (Jiri Denemark),<br/>
      snapshot: don't leak resources on qemu snapshot failure (Eric Blake),<br/>
      Fix command test wrt gnutls initialize &amp; fix debugging (Daniel P. Berrange),<br/>
      daemon: Move TLS initialization to virInitialize (Michal Privoznik),<br/>
      util: only fchown newly created files in virFileOpenAs (Laine Stump),<br/>
      qemu: fix off-by-one in pci slot reservation (Shradha Shah),<br/>
      pci: fix pciDeviceListSteal on multiple devices (Shradha Shah),<br/>
      qemu: Report error if qemu monitor command not found for BlockJob (Osier Yang),<br/>
      send-key: fix scan keycode map (KAMEZAWA Hiroyuki),<br/>
      storage: Flush host cache after write (Michal Privoznik),<br/>
      daemon: initialize GnuTLS (Michal Privoznik),<br/>
      Ensure async packets never get marked for sync replies (Daniel P. Berrange),<br/>
      Don't attempt to read from a stream if it is closed (Daniel P. Berrange),<br/>
      qemu: Init reattaching related members of pciDevice before reattach (Osier Yang),<br/>
      Fix race condition in abort of stream (Daniel P. Berrange),<br/>
      Ensure client streams are closed when marking a client for close (Daniel P. Berrange),<br/>
      Ensure stream is aborted when exiting console (Daniel P. Berrange),<br/>
      daemon: Add early libvirtd start verbose errors. (Peter Krempa),<br/>
      qemu: error message should show uri instead of (null) (Peter Krempa),<br/>
      libvirtd.init.in: stop/restart()       wrong return value in case of failure (Douglas Schilling Landgraf),<br/>
      daemon: Fix regression of libvirtd reloading support (Osier Yang),<br/>
      virsh: fix logic bug (Eric Blake),<br/>
      storage: Directory shouldn't be listed as type 'file' (Peter Krempa),<br/>
      network: eliminate potential memory leak on parse failure (Laine Stump),<br/>
      nwfilter: tolerate disappearing interfaces while instantiating filter (Stefan Berger),<br/>
      qemu: Fix -chardev udp if parameters are omitted (Cole Robinson),<br/>
      managedsave: prohibit use on transient domains (Eric Blake),<br/>
      Check stdoutWatch before removing the handler. (Juerg Haefliger),<br/>
      Fix memory leak while scanning snapshots (Philipp Hahn),<br/>
      build: fix regression in large file support (Eric Blake),<br/>
      Don't mount /dev for application containers (Daniel P. Berrange),<br/>
      qemu: avoid crash on process attach (Eric Blake),<br/>
      rpc:fix sasl session relocking intead of unlocking it (Guannan Ren),<br/>
      daemon: Unlink unix socket paths on shutdown (Osier Yang)<br/>
      </li>

      <li>Improvements:<br/>
      Remove devname identifier from autogenerated RPC code (Peter Krempa),<br/>
      maint: Prefer names over email in 'git shortlog' (Eric Blake),<br/>
      virsh: Add more human-friendly output of domblkstat command (Peter Krempa),<br/>
      spec: silence warnings when installing in F16 (Eric Blake),<br/>
      snapshot: allow disk snapshots of qcow2 disks (Eric Blake),<br/>
      snapshot: affect persistent xml after disk snapshot (Eric Blake),<br/>
      qemu: Introduce shutdown reason for paused state (Jiri Denemark),<br/>
      qemu: Prevent disk corruption on domain shutdown (Jiri Denemark),<br/>
      qemu: Properly detect crash of a rebooted domain (Jiri Denemark),<br/>
      qemu: Fix shutoff reason when domain crashes (Jiri Denemark),<br/>
      rpc: convert unknown procedures to VIR_ERR_NO_SUPPORT (Eric Blake),<br/>
      python: Fix libvirt.py generation to include virterror info (Cole Robinson),<br/>
      sanlock: add missing test command in virt-sanlock-cleanup.in (Alex Jia),<br/>
      spec: Require augeas for sanlock (Michal Privoznik),<br/>
      Use max bandwidth from qemuDomainObjPrivate struct when migrating (Jim Fehlig),<br/>
      Set qemu migration speed unlimited when migrating to file (Jim Fehlig),<br/>
      Save migration speed in qemuDomainMigrateSetMaxSpeed (Jim Fehlig),<br/>
      Impl virDomainMigrateGetMaxSpeed in qemu driver (Jim Fehlig),<br/>
      Store max migration bandwidth in qemuDomainObjPrivate struct (Jim Fehlig),<br/>
      network: add missing exports (Eric Blake),<br/>
      xml: Clean up rest of virtual XML document names for XML strings (Peter Krempa),<br/>
      qemu_api: Update libvirt spec file (Osier Yang),<br/>
      qemu_api: Update Makefile to generate libvirtmod_qemu lib (Osier Yang),<br/>
      qemu_api: Update Py binding generator to generate files for QEMU APIs (Osier Yang),<br/>
      qemu_api: Add override XML and C files for QEMU APIs (Osier Yang),<br/>
      qemu_api: Add comments for API virDomainQemuMonitorCommand (Osier Yang),<br/>
      qemu_api: Update Makefile for subdir docs (Osier Yang),<br/>
      qemu_api: Modify apibuild.py to generate docs for QEMU APIs (Osier Yang),<br/>
      Do not log invalid operations in libvirtd logs (Daniel Veillard),<br/>
      selinux: Detect virt_use_nfs boolean set (Michal Privoznik),<br/>
      xml: Change virtual file names of xml documents parsed in memory (Peter Krempa),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      snapshot: use new API for less work (Eric Blake),<br/>
      snapshot: new APIs for inspecting snapshot object (Eric Blake),<br/>
      virsh: fix typo in opts_send_key (Alex Jia),<br/>
      link-state: virsh: Add wrapper commands for changing link state (Peter Krempa),<br/>
      link-state: qemu: Add net intf modification to virUpdateDeviceFlags (Peter Krempa),<br/>
      link-state: qemu: Add monitor handling for link state modification (Peter Krempa),<br/>
      link-state: conf: Add element to XML for controling link state (Peter Krempa),<br/>
      link-state: util: Add equality comparison functions for structures (Peter Krempa),<br/>
      XML: Improve XML parsing error messages (Peter Krempa),<br/>
      redirdev: allows to specify device address (Marc-André Lureau),<br/>
      latency: Update virsh command domblkstat to use new API (Osier Yang),<br/>
      latency: Expose the new API for Python binding (Osier Yang),<br/>
      latency: Implemente internal API for qemu driver (Osier Yang),<br/>
      latency: Update monitor functions for new latency fields (Osier Yang),<br/>
      latency: Wire up the remote protocol (Osier Yang),<br/>
      latency: Implemente the public API (Osier Yang),<br/>
      latency: Define the internal driver callback (Osier Yang),<br/>
      qemu: Deal with stucked qemu on daemon startup (Michal Privoznik),<br/>
      qemu: Introduce job queue size limit (Michal Privoznik),<br/>
      daemon: Create priority workers pool (Michal Privoznik),<br/>
      snapshot: use SELinux and lock manager with external snapshots (Eric Blake),<br/>
      snapshot: wire up live qemu disk snapshots (Eric Blake),<br/>
      snapshot: wire up new qemu monitor command (Eric Blake),<br/>
      snapshot: make it possible to audit external snapshot (Eric Blake),<br/>
      snapshot: reject unimplemented disk snapshot features (Eric Blake),<br/>
      snapshot: wire up disk-only flag to snapshot-create (Eric Blake),<br/>
      snapshot: add flag for requesting disk snapshot (Eric Blake),<br/>
      snapshot: add virsh domblklist command (Eric Blake),<br/>
      snapshot: also support disks by path (Eric Blake),<br/>
      snapshot: add &lt;disks&gt; to snapshot xml (Eric Blake),<br/>
      snapshot: support extra state in snapshots (Eric Blake),<br/>
      snapshot: expose halt-after-creation in virsh (Eric Blake),<br/>
      snapshot: allow halting after snapshot (Eric Blake),<br/>
      snapshot: expose new delete flag in virsh (Eric Blake),<br/>
      snapshot: introduce new deletion flag (Eric Blake),<br/>
      snapshot: reject transient disks where code is not ready (Eric Blake),<br/>
      snapshot: additions to domain xml for disks (Eric Blake),<br/>
      Check for source conflicts in storage pools (Lei Li),<br/>
      Add a usb1 &amp; usb2 qemuxml2argv test (Marc-André Lureau),<br/>
      PIIX3 USB controller is on function 2 (Marc-André Lureau),<br/>
      snapshot: store qemu domain details in xml (Eric Blake),<br/>
      snapshot: update rng to support full domain in xml (Eric Blake),<br/>
      snapshot: correctly escape generated xml (Eric Blake),<br/>
      snapshot: allow full domain xml in snapshot (Eric Blake),<br/>
      snapshot: refactor domain xml output (Eric Blake),<br/>
      snapshot: prevent migration from stranding snapshot data (Eric Blake),<br/>
      snapshot: support new undefine flags in qemu (Eric Blake),<br/>
      snapshot: cache qemu-img location (Eric Blake),<br/>
      snapshot: refactor some qemu code (Eric Blake),<br/>
      snapshot: teach virsh about new undefine flags (Eric Blake),<br/>
      snapshot: prevent stranding snapshot data on domain destruction (Eric Blake),<br/>
      snapshot: add qemu snapshot redefine support (Eric Blake),<br/>
      snapshot: add qemu snapshot creation without metadata (Eric Blake),<br/>
      snapshot: improve virsh snapshot-create, add snapshot-edit (Eric Blake),<br/>
      snapshot: refactor virsh snapshot creation (Eric Blake),<br/>
      snapshot: allow recreation of metadata (Eric Blake),<br/>
      snapshot: identify qemu snapshot roots (Eric Blake),<br/>
      snapshot: reflect new dumpxml and list options in virsh (Eric Blake),<br/>
      snapshot: identify which snapshots have metadata (Eric Blake),<br/>
      snapshot: let qemu discard only snapshot metadata (Eric Blake),<br/>
      snapshot: allow deletion of just snapshot metadata (Eric Blake),<br/>
      snapshot: simplify acting on just children (Eric Blake),<br/>
      snapshot: track current domain across deletion of children (Eric Blake),<br/>
      snapshot: avoid crash when deleting qemu snapshots (Eric Blake),<br/>
      snapshot: speed up snapshot location (Eric Blake),<br/>
      snapshot: add snapshot-list --parent to virsh (Eric Blake),<br/>
      snapshot: fine-tune qemu snapshot revert states (Eric Blake),<br/>
      snapshot: properly revert qemu to offline snapshots (Eric Blake),<br/>
      snapshot: improve reverting to qemu paused snapshots (Eric Blake),<br/>
      snapshot: fine-tune qemu saved images starting paused (Eric Blake),<br/>
      snapshot: expose --running and --paused in virsh (Eric Blake),<br/>
      snapshot: fine-tune ability to start paused (Eric Blake),<br/>
      snapshot: better events when starting paused (Eric Blake),<br/>
      Learn to use spicevmc as a redirection type for usb-redir (Marc-André Lureau),<br/>
      Add "redirdev" redirection device (Marc-André Lureau),<br/>
      qemu: Don't append 0 at usb id, so that it is compatible with legacy -usb (Marc-André Lureau),<br/>
      qemu: don't reserve slot 1 if a PIIX3 USB controller is defined there (Marc-André Lureau),<br/>
      Modify USB port to be defined as a port path (Marc-André Lureau),<br/>
      Add USB companion controllers support (Marc-André Lureau),<br/>
      USB devices gain a new USB address child element (Marc-André Lureau),<br/>
      test: USB controller can have a PCI address child element (Marc-André Lureau),<br/>
      Add a new controller type 'usb' with optionnal 'model' (Marc-André Lureau),<br/>
      Add USB controller models (Marc-André Lureau),<br/>
      Rename virDomainControllerModel to virDomainControllerModelSCSI (Marc-André Lureau),<br/>
      Add various USB devices QEMU_CAPS (Marc-André Lureau),<br/>
      tests: add missing files (Eric Blake),<br/>
      Add directsync cache mode support for disk driver (Osier Yang),<br/>
      storage: Add virsh support for fs pool formating (Osier Yang),<br/>
      storage: Add mkfs and libblkid to build system (Osier Yang),<br/>
      qemu: refactor file opening (Eric Blake),<br/>
      lxc: do not require 'ifconfig' or 'ipconfig' in container (Scott Moser),<br/>
      Create ptmx as a device (Serge Hallyn),<br/>
      BlockPull: Set initial bandwidth limit if specified (Adam Litke),<br/>
      BlockJob: Bandwidth parameter is in MB when using text monitor (Adam Litke),<br/>
      Increase size of buffer for xend response (Jim Fehlig),<br/>
      virsh: support 'virsh start --force-boot' on older servers (Eric Blake),<br/>
      build: fix 'make check' with pdwtags (Eric Blake),<br/>
      virsh: Expose virDomainMigrateGetMaxSpeed API (Jim Fehlig),<br/>
      virsh: prefer unsigned flags (Eric Blake),<br/>
      storage: Fix incorrect error codes (Osier Yang),<br/>
      remote: Fix incorrect error codes (Osier Yang),<br/>
      nodeinfo: Fix incorrect error codes (Osier Yang),<br/>
      conf: Substitute OPERATION_INVALID with INTERNAL_ERROR (Osier Yang),<br/>
      start: allow discarding managed save (Eric Blake),<br/>
      build: simplify use of verify (Eric Blake),<br/>
      rpc: fix a typo in debugging log in virNetServerProgramSendStreamData (Guannan Ren),<br/>
      maint: fix spelling errors on lose (Eric Blake),<br/>
      Fix generator to cope with call-by-ref long types (Jim Fehlig),<br/>
      hyperv: Add OpenWSMAN based client for the Hyper-V WMI API (Matthias Bolte),<br/>
      hyperv: Add driver skeleton (Matthias Bolte),<br/>
      hyperv: Add configure check for OpenWSMAN (Matthias Bolte),<br/>
      virterror: Fix error message for VIR_ERR_INVALID_ARG (Michal Privoznik),<br/>
      Fix keymap used to talk with QEMU (Daniel P. Berrange),<br/>
      security: Introduce SetSocketLabel (Jiri Denemark),<br/>
      security: Rename SetSocketLabel APIs to SetDaemonSocketLabel (Jiri Denemark),<br/>
      Ignore unused streams in virStreamAbort (Jiri Denemark),<br/>
      snapshot: track current snapshot across restarts (Eric Blake),<br/>
      snapshot: only pass snapshot to qemu command line when reverting (Eric Blake),<br/>
      libvirt: log all flags parameters (Eric Blake),<br/>
      virsh: add list --managed-save (Eric Blake),<br/>
      esx: Refactor a repeated string in the generator (Matthias Bolte),<br/>
      maint: fix comment typos (Eric Blake),<br/>
      virsh: Substitute goto label out with cleanup (Osier Yang),<br/>
      virsh: Do not try to free domain if it is NULL (Osier Yang),<br/>
      xen: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      storage: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      remote: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      qemu: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      nodeinfo: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      lxc: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),<br/>
      conf: Cleanup improper use of VIR_ERR_NO_SUPPORT in node_device_conf (Osier Yang),<br/>
      qemu: Substitute VIR_ERR_NO_SUPPORT with VIR_ERR_OPERATION_INVALID (Osier Yang),<br/>
      virsh: Print error if specified bandwidth is invalid for blockjob (Osier Yang),<br/>
      virsh: properly interleave shared stdout and stderr (Eric Blake),<br/>
      maint: simplify lots of libxml2 clients (Eric Blake),<br/>
      xml: add another convenience function (Eric Blake),<br/>
      maint: treat more libxml2 functions as free-like (Eric Blake),<br/>
      test: rewrite test to match change in behavior (Eric Blake),<br/>
      build: fix typo in recent test patch (Eric Blake),<br/>
      vmware: Allow to undefine a running domain (Osier Yang),<br/>
      uml: Allow to undefine a running domain (Osier Yang),<br/>
      test: Allow to undefine a running domain (Osier Yang),<br/>
      qemu: Allow to undefine a running domain (Osier Yang),<br/>
      openvz: Allow to undefine a running domain (Osier Yang),<br/>
      lxc: Allow to undefine a running domain (Osier Yang),<br/>
      libxl: Allow to undefine a running domain. (Osier Yang),<br/>
      qemu: Get memory balloon info correctly for text monitor (Osier Yang),<br/>
      qemu: disk migration verbose progress (Tom Vijlbrief),<br/>
      virsh: concatenate qemu-monitor-command arguments (Eric Blake),<br/>
      virsh: tweak misleading wording (Eric Blake),<br/>
      Tweak debugging message in RPC client code (Daniel P. Berrange),<br/>
      maint: add missing symbols (Stefan Berger),<br/>
      macvtap: Fix getPhysfn to get the PF of a direct attach network interface (Roopa Prabhu),<br/>
      interface: Add functions to get sriov PF/VF relationship of a net interface (Roopa Prabhu),<br/>
      pci: Add helper functions for sriov devices (Roopa Prabhu),<br/>
      pci: Move some pci sriov helper code out of node device driver to util/pci (Roopa Prabhu),<br/>
      qemu: support event_idx parameter for virtio disk and net devices (Laine Stump),<br/>
      qemu: Use fd: protocol for migration (Jiri Denemark),<br/>
      qemu: Use virNetSocket for tunneled migration (Jiri Denemark),<br/>
      qemu: Refactor do{Tunnel,Native}Migrate functions (Jiri Denemark),<br/>
      Support changing UNIX socket owner in virNetSocketNewListenUNIX (Jiri Denemark),<br/>
      Add backlog parameter to virNetSocketListen (Jiri Denemark),<br/>
      Add API for duplicating a socket/client file descriptor (Daniel P. Berrange),<br/>
      Swap virDomain / virDomainSnapshot declaration (Philipp Hahn),<br/>
      build: fix recent build failures (Eric Blake),<br/>
      Convert libvirtd to use crash-safe pidfile APIs (Daniel P. Berrange),<br/>
      Add some APIs which use locking for crashsafe pidfile handling (Daniel P. Berrange),<br/>
      Introduce functions for checking whether a pidfile is valid (Daniel P. Berrange),<br/>
      Move pidfile functions into util/virpidfile.{c,h} (Daniel P. Berrange),<br/>
      Add virFileLock and virFileUnlock APIs (Daniel P. Berrange),<br/>
      vbox, xenapi: add virDomainUndefineFlags (Eric Blake),<br/>
      virsh: don't reject undefine on active domain (Eric Blake),<br/>
      virsh: Add dir type for listing volumes with vol-list (Peter Krempa),<br/>
      virsh: add snapshot-parent (Eric Blake),<br/>
      virsh: add virsh snapshot-current --name (Eric Blake),<br/>
      virsh: fix snapshot-create-as to handle arbitrary names (Eric Blake),<br/>
      qemu: minor formatting cleanup (Eric Blake),<br/>
      Allow use of file images for LXC container filesystems (Daniel P. Berrange),<br/>
      Fix typo in LXC cgroups setup error message (Daniel P. Berrange),<br/>
      Allow use of block devices for guest filesystem (Daniel P. Berrange),<br/>
      qemu: Avoid overwriting errors from virGetHostname (Jiri Denemark),<br/>
      network: eliminate lag in updating dnsmasq hosts files (Laine Stump),<br/>
      build: update to latest gnulib (Eric Blake)<br/>
      </li>

      <li>Cleanups:<br/>
      maint: ignore generated files (Eric Blake),<br/>
      Remove two references to files not generated (Daniel Veillard),<br/>
      latency: fix make check for remote protocol structs and numbers (Daniel Veillard),<br/>
      security: fix build (Eric Blake),<br/>
      Remove bogus virSecurityManagerSetProcessFDLabel method (Daniel P. Berrange),<br/>
      libvirt: avoid dead store in virDomainMigrateVersion3 (Alex Jia),<br/>
      qemu: avoid dead store in doPeer2PeerMigrate3 (Alex Jia),<br/>
      maint: ignore generated file (Eric Blake),<br/>
      maint: ignore generated file (Eric Blake),<br/>
      maint: let emacs avoid tabs in rng files (Eric Blake),<br/>
      virsh: fix dead store (Eric Blake),<br/>
      qemu: silence clang false positive (Eric Blake),<br/>
      qemu: avoid dead store in qemuMonitorTextBlockJob (Alex Jia),<br/>
      qemu: avoid dead store in qemuProcessStart (Alex Jia)<br/>
      </li>
    </ul>

    <h3>0.9.4: Aug 03 2011</h3>
    <ul>
      <li>Features:<br/>
      bandwidth QoS control (Michal Privoznik),<br/>
      Add new API virDomainBlockPull* (Adam Litke),<br/>
      save: new API to manipulate save file images (Eric Blake),<br/>
      CPU bandwidth limits support (Wen Congyang),<br/>
      allow to send NMI and key event to guests (Lai Jiangshan),<br/>
      new API virDomainUndefineFlags (Osier Yang),<br/>
      Implement code to attach to external QEMU instances. (Daniel P. Berrange),<br/>
      various missing python binding (Hu Tao and Lai Jiangshan),<br/>
      bios: Add support for SGA (Michal Privoznik)<br/>
      </li>

      <li>Documentation:<br/>
      doc: fix confusing statement about required privileges (Eric Blake),<br/>
      doc: fix incorrect option in blockjob (Alex Jia),<br/>
      Correct the default value of lock_manager in qemu.conf (Guannan Ren),<br/>
      libvirt.c: Update outdated description of flags (Michal Privoznik),<br/>
      qemu: Improve docs for virsh dump format (Osier Yang),<br/>
      qemu: improve thread documentation (Eric Blake),<br/>
      doc: Add doc for blockpull and blockjob commands (Osier Yang),<br/>
      Fix incorrect implication about list options (Dave Allan),<br/>
      Fix typos in virsh.pod file (Daniel P. Berrange),<br/>
      network: Fix typo (Osier Yang),<br/>
      Break up 'Basic Resources' XML section (Cole Robinson),<br/>
      driver.h: Fix two driver documentation mistakes (Wieland Hoffmann),<br/>
      doc: Add documentation for new cputune elements period and quota (Wen Congyang),<br/>
      doc: Correct documents for iface commands (Osier Yang),<br/>
      improve virsh man page synopses (Eric Blake),<br/>
      Fix spice documentation typo (Michal Privoznik),<br/>
      document dxml argument to migrate2 (Eric Blake),<br/>
      website: Point main page links to libvirt driver pages (Dave Allan),<br/>
      maint: fix typos (Eric Blake),<br/>
      mention EMOTIVE as a libvirt-using app (Eric Blake),<br/>
      virsh: Update virsh man page (Supriya Kannery),<br/>
      Fix virsh inject-nmi man page (KAMEZAWA Hiroyuki),<br/>
      virsh: make destroy sound less scary (Eric Blake),<br/>
      minor whitespace cleanups (Eric Blake),<br/>
      Add documentation for the seclabel XML element (Daniel P. Berrange)<br/>
      </li>

      <li>Portability:<br/>
      build: fix include path for cygwin (Eric Blake),<br/>
      build: avoid non-portable shell in test setup (Eric Blake),<br/>
      tests: Don't use bash if we don't have to (Matthias Bolte),<br/>
      freebsd: Fix build problem due to picking up the wrong libvirt.h (Matthias Bolte),<br/>
      freebsd: Avoid /bin/true in commandtest (Matthias Bolte),<br/>
      freebsd: Add gnulib environ module for the commandtest (Matthias Bolte),<br/>
      build: support warnings on RHEL 5 (Eric Blake),<br/>
      Build: fix build if HAVE_AVAHI is not defined (Stefan Berger),<br/>
      sysinfo: Don't try to run dmidecode on archs missing it (Michal Privoznik),<br/>
      udev: Don't try to dump DMI on non-intel archs (Michal Privoznik),<br/>
      Fix build when using polkit0 (Jim Fehlig),<br/>
      Fix rpm build with sanlock and without QEmu (Daniel Veillard),<br/>
      Skip some xen tests if xend is not running (Jim Fehlig),<br/>
      build: fix virBufferVasprintf on mingw (Eric Blake),<br/>
      Fix compilation of statstest.c during make check (Jim Fehlig),<br/>
      Fix compilation error when SASL support is disabled (Jean-Baptiste Rouault),<br/>
      tests: Disable networkxml2argvtest when configured without network (Matthias Bolte)<br/>
      </li>

      <li>Bug Fixes:<br/>
      util: plug memory leak (Eric Blake),<br/>
      rpc: avoid null deref (Eric Blake),<br/>
      qemu: avoid memory leaks (Eric Blake),<br/>
      qemu: plug child process leak on domain core dump (Eric Blake),<br/>
      conf: avoid memory leak on disk operations (Eric Blake),<br/>
      rpc: avoid crash on error (Eric Blake),<br/>
      qemu: avoid null deref on block pull error (Eric Blake),<br/>
      rpc: correctly process sasl whitelist globs (Eric Blake),<br/>
      screenshot: don't unlink bogus file (Eric Blake),<br/>
      python: avoid unlikely sign extension bug (Eric Blake),<br/>
      rpc: avoid uninitialized memory use (Eric Blake),<br/>
      rpc: avoid double close on error (Eric Blake),<br/>
      qemu: Unlink temporary file on failure (Michal Privoznik),<br/>
      rpc: avoid libvirtd crash on unexpected client close (Eric Blake),<br/>
      virsh: fix memory leak in cmdNetworkInfo (Alex Jia),<br/>
      openvz: detect when a domain was shut down from the inside (Jean-Baptiste Rouault),<br/>
      qemu: fix crash when mixing sync and async monitor jobs (Eric Blake),<br/>
      qemu: fix return value issue (Alex Jia),<br/>
      qemu: fix return value issue in qemuDomainSetMemoryParameters (Alex Jia),<br/>
      virsh: Fix vol-name and vol-pool commands (Matthias Bolte),<br/>
      qemu: Fix a regression of domjobabort (Osier Yang),<br/>
      conf: Don't leak the virtual port profile in virNetworkDefFree (Matthias Bolte),<br/>
      network: don't forward DNS requests from isolated networks (Laine Stump),<br/>
      virsh: avoid missing zero value judgement in cmdBlkiotune (Alex Jia),<br/>
      qemu: fix nested job with driver lock held (Eric Blake),<br/>
      qemu: Fix memory leak on metadata fetching (Michal Privoznik),<br/>
      virsh: fix memory leak in cmdVolPath code (Alex Jia),<br/>
      rpc: Fix memory leak in remoteDomainSet*Parameters functions (Matthias Bolte),<br/>
      qemu: Recover from interrupted migration (Jiri Denemark),<br/>
      python: Properly report errors if virStreamRecv fails (Cole Robinson),<br/>
      Fix race in ref counting when handling RPC jobs (Daniel P. Berrange),<br/>
      Fix build with gnutls 1.0.x branch (Daniel P. Berrange),<br/>
      Add libtasn1-devel as a BuildRequires for libvirt.spec (Daniel P. Berrange),<br/>
      Add mutex protection to SASL and TLS modules (Daniel P. Berrange),<br/>
      Report error if unable to bind to any socket (Daniel P. Berrange),<br/>
      Fix leak of mDNS object in virNetServer (Daniel P. Berrange),<br/>
      Fix memory leaks in MDNS code (Daniel P. Berrange),<br/>
      python: Handle embedded NUL in stream.send data (Cole Robinson),<br/>
      Catch dnsmasq start failures (Guido Günther),<br/>
      Fix import of private key with older gnutls (Daniel P. Berrange),<br/>
      Fix TLS context tests with expired certs (Daniel P. Berrange),<br/>
      Honour filesystem readonly flag &amp; make special FS readonly (Daniel P. Berrange),<br/>
      xenapi: Fix double-freeing the session in xenapiClose (Matthias Bolte),<br/>
      remote: Fix forgotten comma (Michal Privoznik),<br/>
      qemu: fix error message with migrate2 xml (Eric Blake),<br/>
      command: avoid leaking fds across fork (Eric Blake),<br/>
      error: preserve errno when saving last error (Eric Blake),<br/>
      Fix uninitialized variable in QEMU CPU bandwidth code (Daniel P. Berrange),<br/>
      fix make syntax-check error (Wen Congyang),<br/>
      rpc: Pass through DISPLAY so ssh can launch askpass (Cole Robinson),<br/>
      Don't try to close a NULL virNetClientPtr (Guannan Ren),<br/>
      Honour key usage/purpose criticality flag (Daniel P. Berrange),<br/>
      Fix reporting of errors for p2p migration (Daniel P. Berrange),<br/>
      Use a virFreeCallback on virNetSocket to ensure safe release (Daniel P. Berrange),<br/>
      Add mutex locking and reference counting to virNetSocket (Daniel P. Berrange),<br/>
      util: avoid fds leak when virEventPollAddHandle fail (Alex Jia),<br/>
      virsh: avoid double free of domain (Alex Jia),<br/>
      build: Fix protocol-structs check in VPATH build (Jiri Denemark),<br/>
      Fix now dead cleanup of VMs on libvirtd restart (Daniel P. Berrange),<br/>
      qemu: Fix a regression of attaching device (Osier Yang),<br/>
      storage: Avoid memory leak on metadata fetching (Michal Privoznik),<br/>
      qemu: Don't overwrite errors by closefd in error paths (Jiri Denemark),<br/>
      qemu: Save domain status ASAP after creating qemu process (Jiri Denemark),<br/>
      util: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs (Jiri Denemark),<br/>
      virsh: fix missing prompt message for 'snapshot-delete' command (Nan Zhang),<br/>
      Ensure signal handler propagates fatal signals to default handler (Daniel P. Berrange),<br/>
      qemu: Fix monitor unlocking in some error paths (Jiri Denemark),<br/>
      esx: Initialize all instances of esxVMX_Data to zero (Matthias Bolte),<br/>
      qemu: avoid fd leak on core dump failure (Eric Blake),<br/>
      domain_conf: Free temporary variable (Michal Privoznik),<br/>
      esx: Fix a potential crash (Osier Yang),<br/>
      remote: Fix memory leak (Alex Jia),<br/>
      kill vm if saving config failed in v3 protocol (Wen Congyang),<br/>
      Don't exit if the libvirtd config does not exist (Daniel P. Berrange),<br/>
      Fix sending of reply to final RPC message (Daniel P. Berrange),<br/>
      Fix leak of remote driver if final 'CLOSE' RPC call fails (Daniel P. Berrange),<br/>
      Fix release of outgoing stream confirmation/abort message (Daniel P. Berrange),<br/>
      Fix leak of 'msg' object in client stream code (Daniel P. Berrange),<br/>
      Fix potential crash in libvirtd with active streams (Daniel P. Berrange),<br/>
      Fix mistaken order of server cert/key parameters in constructor (Daniel P. Berrange),<br/>
      util: Don't try to fchown files opened as non-root (Jiri Denemark),<br/>
      qemu: Don't chown files on NFS share if dynamic_ownership is off (Michal Privoznik),<br/>
      python: Fix bogus label placement (Matthias Bolte),<br/>
      util: close the ioctl socket at the end of if(Get|Set)MacAddress (Laine Stump),<br/>
      pci: initialize state values on reattach (Guannan Ren),<br/>
      qemu: Fix virFileMakePath error handling in snapshot creation (Matthias Bolte),<br/>
      storage: Do not override the exact error of createRawFile (Osier Yang)<br/>
      </li>

      <li>Improvements:<br/>
      build: allow caching the input to STATIC_ANALYSIS (Eric Blake),<br/>
      fdstream: drop delete argument (Eric Blake),<br/>
      save: generate idempotent inactive xml for running domain (Eric Blake),<br/>
      conf: make 'vnet' prefix a macro (Eric Blake),<br/>
      utils: More useful error message for hook script failure (Osier Yang),<br/>
      tests: Unify style of test skipping code (Matthias Bolte),<br/>
      save: let qemu driver manipulate save files (Eric Blake),<br/>
      save: support qemu modifying xml on domain save/restore (Eric Blake),<br/>
      xen: make direct call when there is only one subdriver (Eric Blake),<br/>
      xen: reduce callback special cases (Eric Blake),<br/>
      xen: cleanup callback struct (Eric Blake),<br/>
      libxl: fix build failure due to change in virDomainGraphicsDef (Laine Stump),<br/>
      qemu: support type=network in domain graphics &lt;listen&gt; (Laine Stump),<br/>
      conf: add &lt;listen&gt; subelement to domain &lt;graphics&gt; element (Laine Stump),<br/>
      python: add python binding for virDomainSetMemoryParameters (Hu Tao),<br/>
      python: add python binding for virDomainGetMemoryParameters (Hu Tao),<br/>
      python: add python binding for virDomainSetBlkioParameters (Hu Tao),<br/>
      python: add python binding for virDomainGetBlkioParameters (Hu Tao),<br/>
      virsh: expose change-protection during migration (Eric Blake),<br/>
      send-key: Implement Python API (Lai Jiangshan),<br/>
      qemu: Remove special case for virDomainAbortJob (Jiri Denemark),<br/>
      qemu: Remove special case for virDomainSuspend (Jiri Denemark),<br/>
      qemu: Remove special case for virDomainMigrateSetMaxDowntime (Jiri Denemark),<br/>
      qemu: Remove special case for virDomainMigrateSetMaxSpeed (Jiri Denemark),<br/>
      qemu: Remove special case for virDomainBlockStats (Jiri Denemark),<br/>
      qemu: Remove special case for virDomainGetBlockInfo (Jiri Denemark),<br/>
      qemu: Migration job on source daemon (Jiri Denemark),<br/>
      qemu: Migration job on destination daemon (Jiri Denemark),<br/>
      qemu: Implement migration job phases (Jiri Denemark),<br/>
      bandwidth: Integrate bandwidth into portgroups (Michal Privoznik),<br/>
      tools: format percent strings of nodecpustats (Alex Jia),<br/>
      set cpu bandwidth for the vm (Wen Congyang),<br/>
      virsh: use faster bit search (Eric Blake),<br/>
      virsh: make vcpucount use --current consistently (Eric Blake),<br/>
      vcpu: teach getVcpusFlags about current (Eric Blake),<br/>
      util: change virFile*Pid functions to return &lt; 0 on failure (Laine Stump),<br/>
      rename cfs_* to vcpu_* (Wen Congyang),<br/>
      python: add Python binding for virDomainGetVcpuPinInfo API (Taku Izumi),<br/>
      python: add Python binding for virDomainPinVcpusFlags API (Taku Izumi),<br/>
      python: add Python binding for virDomainGetSchedulerParametersFlags API (Taku Izumi),<br/>
      python: add Python binding for virDomainGetSchedulerParametersFlags API (Taku Izumi),<br/>
      tests: detect gnutls errors (Eric Blake),<br/>
      bandwidth: Add domain schema and xml2xml tests (Michal Privoznik),<br/>
      bandwidth: Add test cases for network (Michal Privoznik),<br/>
      bandwidth: Implement functions to enable and disable QoS (Michal Privoznik),<br/>
      bandwidth: Create format functions (Michal Privoznik),<br/>
      bandwidth: Add parsing and free functions (Michal Privoznik),<br/>
      bandwidth: Declare internal structures (Michal Privoznik),<br/>
      bandwidth: Define schema and create documentation (Michal Privoznik),<br/>
      network: provide internal API to return IP of a network (Laine Stump),<br/>
      util: add an ifaceGetIPAddress to the interface utilities (Laine Stump),<br/>
      Pre-create /var/lib/libvirt/sanlock directory (Daniel P. Berrange),<br/>
      Refactor mounting of special filesystems (Daniel P. Berrange),<br/>
      Pull code for doing a bind mount into separate method (Daniel P. Berrange),<br/>
      Fix typos in daemon config file from previous commit (Daniel P. Berrange),<br/>
      Add a test case for certificate validation (Daniel P. Berrange),<br/>
      Allow certificate sanity checking to be disabled (Daniel P. Berrange),<br/>
      remote/ssh: optional "keyfile" parameter. (Oskari Saarenmaa),<br/>
      util: make interface.c functions consistently return &lt; 0 on error (Laine Stump),<br/>
      Refactor the certification validation code (Daniel P. Berrange),<br/>
      Remove call to deprecated gnutls_certificate_type_set_priority (again) (Daniel P. Berrange),<br/>
      Ensure that libvirtd shuts down if initialization fails (Daniel P. Berrange),<br/>
      Asynchronous event for BlockJob completion (Adam Litke),<br/>
      Enable virDomainBlockPull in the python API (Adam Litke),<br/>
      Enable the virDomainBlockPull API in virsh (Adam Litke),<br/>
      Implement virDomainBlockPull for the qemu driver (Adam Litke),<br/>
      Add virDomainBlockPull support to the remote driver (Adam Litke),<br/>
      virDomainBlockPull: Implement the main entry points (Adam Litke),<br/>
      save: add virsh commands for manipulating save files (Eric Blake),<br/>
      save: wire up remote protocol (Eric Blake),<br/>
      save: support bypass-cache flag in libvirt-guests init script (Eric Blake),<br/>
      save: support bypass-cache flag in qemu.conf (Eric Blake),<br/>
      save: support BYPASS_CACHE during qemu save/restore (Eric Blake),<br/>
      save: add virFileDirectFd wrapper type (Eric Blake),<br/>
      save: let iohelper work on O_DIRECT fds (Eric Blake),<br/>
      save: let iohelper handle inherited fd (Eric Blake),<br/>
      save: support --xml to virsh save/restore (Eric Blake),<br/>
      save: add --bypass-cache flag to virsh save/restore operations (Eric Blake),<br/>
      save: wire up trivial save/restore flags implementations (Eric Blake),<br/>
      error: add new error type for reflecting partial API support (Eric Blake),<br/>
      network: internal API functions to manage assignment of physdev to guest (Laine Stump),<br/>
      qemu: use virDomainNetGetActual*() in qemuDomainXMLToNative (Laine Stump),<br/>
      qemu: use virDomainNetGetActual*() functions where appropriate (Laine Stump),<br/>
      network: separate Start/Shutdown functions for new network types (Laine Stump),<br/>
      conf: support abstracted interface info in network XML (Laine Stump),<br/>
      conf: support abstracted interface info in domain interface XML (Laine Stump),<br/>
      conf: virDomainNetDef points to (rather than contains) virtPortProfile (Laine Stump),<br/>
      conf: put virtPortProfile struct / functions in a common location (Laine Stump),<br/>
      destroy: Implement internal API for xenapi driver (Michal Privoznik),<br/>
      destroy: Implement internal API for xen driver (Michal Privoznik),<br/>
      destroy: Implement internal API for vmware driver (Michal Privoznik),<br/>
      destroy: Implement internal API for vbox driver (Michal Privoznik),<br/>
      destroy: Implement internal API for uml driver (Michal Privoznik),<br/>
      destroy: Implement internal API for phyp driver (Michal Privoznik),<br/>
      destroy: Implement internal API for openvz driver (Michal Privoznik),<br/>
      destroy: Implement internal API for lxc driver (Michal Privoznik),<br/>
      destroy: Implement internal API for libxl driver (Michal Privoznik),<br/>
      destroy: Implement internal API for ESX driver (Michal Privoznik),<br/>
      destroy: Implement internal API for qemu driver (Michal Privoznik),<br/>
      destroy: Wire up the remote protocol (Michal Privoznik),<br/>
      destroy: Define new public API virDomainDestroyFlags (Michal Privoznik),<br/>
      save: wire up remote protocol (Eric Blake),<br/>
      save: new public API to bypass file system cache on save/restore (Eric Blake),<br/>
      build: rename files.h to virfile.h (Eric Blake),<br/>
      command: move all docs into .c file (Eric Blake),<br/>
      rpc: Make the dispatch generator handle 'void name(void)' style procedures (Matthias Bolte),<br/>
      python: Fix makefile rule for code generation (Matthias Bolte),<br/>
      qemu: Implement cfs_period and cfs_quota's modification (Wen Congyang),<br/>
      qemu: Implement period and quota tunable XML configuration and parsing (Wen Congyang),<br/>
      Update XML Schema for new entries (Wen Congyang),<br/>
      cgroup: Implement cpu.cfs_period_us and cpu.cfs_quota_us tuning API (Wen Congyang),<br/>
      Introduce the function virCgroupForVcpu (Wen Congyang),<br/>
      qemu: send-key: Implement the driver methods (Lai Jiangshan),<br/>
      send-key: Expose the new API in virsh (Lai Jiangshan),<br/>
      util: add virtkeycode module (Lai Jiangshan),<br/>
      util: Add keymaps.csv (Lai Jiangshan),<br/>
      Fix checking of key usage/purpose data (Daniel P. Berrange),<br/>
      Fix mixed up error messages when reporting TLS certificate problems (Daniel P. Berrange),<br/>
      undefine: Extend virsh undefine to support the new flag (Osier Yang),<br/>
      undefine: Implement undefineFlags for all other drivers (Osier Yang),<br/>
      undefine: Implement internal API for libxl driver (Osier Yang),<br/>
      undefine: Implement internal API for qemu driver (Osier Yang),<br/>
      undefine: Wire up the remote protocol (Osier Yang),<br/>
      undefine: Define the new API (Osier Yang),<br/>
      Add sanity checking of basic constraints, key purpose &amp; key usage (Daniel P. Berrange),<br/>
      Add some basic sanity checking of certificates before use (Daniel P. Berrange),<br/>
      Add an explicit virNetClientClose method (Daniel P. Berrange),<br/>
      Add some debugging for virNetClient reference counting (Daniel P. Berrange),<br/>
      build: detect doc generation failure (Eric Blake),<br/>
      Unregister event callback if a fatal error occurs during dispatch (Daniel P. Berrange),<br/>
      Quieten build &amp; ensure API build scripts exit with non-zero status (Daniel P. Berrange),<br/>
      virsh: Extend virsh dominfo to display if managed save image exists (Osier Yang),<br/>
      libvirt: do not mix internal flags into public API (Eric Blake),<br/>
      rpc: Fix typos in rpc generator scripts (Osier Yang),<br/>
      build: also track RPC on-wire enum values (Eric Blake),<br/>
      build: add syntax check for proper flags use (Eric Blake),<br/>
      xen: reject unknown flags (Eric Blake),<br/>
      esx: reject unknown flags (Eric Blake),<br/>
      virsh: improve option handling (Eric Blake),<br/>
      flags: fix domain_conf migration regression (Eric Blake),<br/>
      flags: fix qemu migration regression (Eric Blake),<br/>
      flags: use common dumpxml flags check (Eric Blake),<br/>
      add --cache, --serial, --shareable and --address to attach-disk (Hu Tao),<br/>
      Fix error message for missing TLS write function (Daniel P. Berrange),<br/>
      Fix reporting of cert validation failures (Daniel P. Berrange),<br/>
      Fix error code for storage operations (Dave Allan),<br/>
      setvcpus: add "--current" option to "virsh setvcpus" (Taku Izumi),<br/>
      setvcpus: extend qemuDomainSetVcpusFlags() to support current flag (Taku Izumi),<br/>
      setvcpus: extend virDomainSetVcpusFlags API to support current flag (Taku Izumi),<br/>
      Add domain events support to UML driver (Daniel P. Berrange),<br/>
      virnetsocket: use new API for uniform child cleanup (Eric Blake),<br/>
      fdstream: avoid child process leak on error (Eric Blake),<br/>
      command: introduce virPidWait, virPidAbort (Eric Blake),<br/>
      update apparmor security driver for new udev paths (Jamie Strandboge),<br/>
      xenapi: Improve error reporting in xenapiOpen (Matthias Bolte),<br/>
      build: fix VPATH build of todo (Eric Blake),<br/>
      build: check for virnetprotocol on-the-wire stability (Eric Blake),<br/>
      build: disable some drivers when building without libvirt daemon (Wen Congyang),<br/>
      build: avoid ATTRIBUTE_UNUSED in headers (Eric Blake),<br/>
      remote: prefer unsigned flags (Eric Blake),<br/>
      conf: delete unused flags arguments (Eric Blake),<br/>
      virsh: fix previous patch (Jiri Denemark),<br/>
      virsh: Make "DEBUG" loglevel the superset (Supriya Kannery),<br/>
      virsh: Avoid using magic numbers for logging (Supriya Kannery),<br/>
      build: don't hand-roll cloexec code (Eric Blake),<br/>
      conf: prefer unsigned flags (Eric Blake),<br/>
      python: prefer unsigned flags (Eric Blake),<br/>
      node_device: avoid implicit int (Eric Blake),<br/>
      virsh, daemon: prefer unsigned flags (Eric Blake),<br/>
      xenapi: reject unknown flags (Eric Blake),<br/>
      vmware: reject unknown flags (Eric Blake),<br/>
      vbox: reject unknown flags (Eric Blake),<br/>
      uml: reject unknown flags (Eric Blake),<br/>
      test: reject unknown flags (Eric Blake),<br/>
      qemu: reject unknown flags (Eric Blake),<br/>
      phyp: reject unknown flags (Eric Blake),<br/>
      openvz: reject unknown flags (Eric Blake),<br/>
      lxc: reject unknown flags (Eric Blake),<br/>
      libxl: reject unknown flags (Eric Blake),<br/>
      qemu: build failed due to unused variables (Peter Krempa),<br/>
      storage: reject unknown flags (Eric Blake),<br/>
      node_device: reject unknown flags (Eric Blake),<br/>
      util: reject unknown flags, and prefer unsigned flags (Eric Blake),<br/>
      libvirt-qemu: use unsigned flags (Eric Blake),<br/>
      maint: print flags in hex during debug (Eric Blake),<br/>
      maint: exclude more files from syntax check (Eric Blake),<br/>
      util: honor anchored names when searching for executables (Eric Blake),<br/>
      Remove unused virNetServerProgramErrorHander typedef (Daniel P. Berrange),<br/>
      qemu: Consolidate qemuMigrationPrepare{Direct,Tunnel} (Jiri Denemark),<br/>
      qemu: Add support for job phase (Jiri Denemark),<br/>
      qemu: Recover from interrupted jobs (Jiri Denemark),<br/>
      qemu: Save job type in domain status XML (Jiri Denemark),<br/>
      qemu: Allow all query commands to be run during long jobs (Jiri Denemark),<br/>
      qemu: Consolidate {Enter,Exit}Monitor{,WithDriver} (Jiri Denemark),<br/>
      qemu: Consolidate BeginJob{,WithDriver} into a single method (Jiri Denemark),<br/>
      qemu: Separate job related data into a new object (Jiri Denemark),<br/>
      maint: avoid incremental 'make syntax-check' failure (Eric Blake),<br/>
      Skip bugs which are CLOSED in todo list (Daniel P. Berrange),<br/>
      Add missing cleanup for transient guests in UML driver (Daniel P. Berrange),<br/>
      Add auditing to the UML driver (Daniel P. Berrange),<br/>
      Add auditing to the LXC driver (Daniel P. Berrange),<br/>
      Add virtualization type in audit messages (Daniel P. Berrange),<br/>
      Add auditing of filesystems (Daniel P. Berrange),<br/>
      Move qemu_audit.h helpers into shared code (Daniel P. Berrange),<br/>
      rpc: Fix compile error due to potentially unused parameter (Matthias Bolte),<br/>
      Add monitor API for checking whether KVM is enabled (Daniel P. Berrange),<br/>
      Add a method for extracting QEMU argv from /proc (Daniel P. Berrange),<br/>
      Change extract pidfile &amp; monitor config from QEMU command line (Daniel P. Berrange),<br/>
      Keep pidfile path in qemuDomainObjPrivate struct (Daniel P. Berrange),<br/>
      Add a new 'virsh qemu-attach' command. (Daniel P. Berrange),<br/>
      Define remote wire protocol &amp; impls for virDomainQemuAttach (Daniel P. Berrange),<br/>
      Define a QEMU specific API to attach to a running QEMU process (Daniel P. Berrange),<br/>
      qemu: update configuration file (Alex Jia),<br/>
      maint: rename virtaudit to match file contents (Eric Blake),<br/>
      remote/ssh: support for no_verify. (Oskari Saarenmaa),<br/>
      build: also check qemu_protocol for on-the-wire stability (Eric Blake),<br/>
      build: avoid requiring -lm (Eric Blake),<br/>
      Remove code no longer used after commit df0b57a9 (Jim Fehlig),<br/>
      Add domain type checking (Matthias Bolte),<br/>
      tests: simplify formatting (Eric Blake),<br/>
      Do not drop kernel cmdline for xen pv domains (Jim Fehlig),<br/>
      RPC: fix argument's name (Wen Congyang),<br/>
      fix typo error (Wen Congyang),<br/>
      vbox: Fix logic in storage driver open function (Matthias Bolte),<br/>
      tests: Improve output of tests that decide to skip at runtime (Matthias Bolte),<br/>
      tests: Fix compressed test output padding logic (Matthias Bolte),<br/>
      tests: Use EXIT_AM_SKIP instead of 77 directly (Matthias Bolte),<br/>
      rpc: Fix whitespace problem in generated code (Matthias Bolte),<br/>
      sanlock: avoid lockspace setup when auto_disk_lease is off (Federico Simoncelli),<br/>
      libvirtd: diagnose explicitly requested but missing conf file (Eric Blake),<br/>
      qemu: clean up OOM checks (Michael Santos),<br/>
      graphics: add support for action_if_connected in qemu (Michal Privoznik),<br/>
      microblaze: Add architecture support (John Williams),<br/>
      util: drop unused safezero argument (Eric Blake),<br/>
      conf: prefer unsigned int for flags (Eric Blake),<br/>
      drivers: prefer unsigned int for flags (Eric Blake),<br/>
      public API: prefer unsigned int for flags (Eric Blake),<br/>
      maint: print flags in hex during debug (Eric Blake),<br/>
      build: use gnulib pthread_sigmask (Eric Blake),<br/>
      util: rename err_exit to cleanup in interface.c (Laine Stump),<br/>
      sysinfo: delete unnecessary white space of sysinfo. (Minoru Usui),<br/>
      util: add virTrimSpaces (Eric Blake),<br/>
      util: fix virSkipSpaces (Eric Blake),<br/>
      Reduce code duplication in virFileMakePath(Helper) (Matthias Bolte),<br/>
      apparmor: Finish incomplete renaming of relabel to norelabel (Matthias Bolte),<br/>
      Fix default value of security label 'relabel' attribute (Daniel P. Berrange),<br/>
      Fix return value semantic of virFileMakePath (Matthias Bolte),<br/>
      nodedev: Let check_fc_host_linux report errors to the caller (Matthias Bolte),<br/>
      xml: create an RNG file for common types and move some definitions there (Laine Stump),<br/>
      docs: sort the file list in the schemas Makefile (Laine Stump),<br/>
      qemu: check flags in qemuDomainGetXMLDesc (Laine Stump),<br/>
      conf: fix domain parse flags (Laine Stump),<br/>
      conf: Fix declaration of virNetworkDNS(Hosts)Def struct (Matthias Bolte),<br/>
      Allow for resource relabelling with static labels (Daniel P. Berrange),<br/>
      Allow a base label to be specified in dynamic labelling mode (Daniel P. Berrange)<br/>
      </li>

      <li>Cleanups:<br/>
      qemu: silence coverity false positives (Eric Blake),<br/>
      interface: drop dead code (Eric Blake),<br/>
      rpc: silence coverity false positives (Eric Blake),<br/>
      build: silence coverity false positives (Eric Blake),<br/>
      qemu: remove dead code (Eric Blake),<br/>
      maint: add missing copyright notices (Eric Blake),<br/>
      xen: drop unused callbacks (Eric Blake),<br/>
      build: avoid type-punning compiler warning (Eric Blake),<br/>
      tests: fix compilation failures (Eric Blake),<br/>
      build: Use $(PYTHON) instead of python for the keycode map generator (Matthias Bolte),<br/>
      build: fix bugs with destroyFlags patches (Eric Blake),<br/>
      util: define MAX (Laine Stump),<br/>
      maint: fix typos on guaranteed (Eric Blake),<br/>
      build: fix broken build (Eric Blake),<br/>
      maint: fix spelling of Red Hat (Eric Blake),<br/>
      tests: Fix virshtest failure after dominfo changed (Osier Yang)<br/>
      </li>
    </ul>

    <h3>0.9.3: Jul 04 2011</h3>
    <ul>
      <li>Features:<br/>
      vcpupin: introduce the new libvirt API (virDomainGetVcpupinInfo) (Taku Izumi),<br/>
      Add TXT record support for virtual DNS service (Michal Novotny),<br/>
      Support reboots with the QEMU driver (Daniel P. Berrange),<br/>
      Introduce virDomainGetControlInfo API (Jiri Denemark),<br/>
      virNodeGetMemoryStats: Expose new API (Minoru Usui),<br/>
      virNodeGetCPUTime: Implement public API (Minoru Usui),<br/>
      send-key: Defining the public API (Lai Jiangshan),<br/>
      vcpupin: introduce a new libvirt API (virDomainPinVcpuFlags) (Taku Izumi),<br/>
      support multifunction PCI device (Wen Congyang),<br/>
      lxc: various improvements (Cole Robinson)<br/>
      </li>

      <li>Documentation:<br/>
      Add documentation for configuration lock managers (Daniel P. Berrange),<br/>
      fix indentation of sub-elements of &lt;ip&gt; in network XML (Laine Stump),<br/>
      document correct flag name (Eric Blake),<br/>
      documenting the 802.1Qbh parameters of a 'direct' interface (David S. Wang),<br/>
      Make virConnectClose comply to apibuild.py expectations (Matthias Bolte),<br/>
      fix docs to match behavior of virConnectClose (Eric Blake),<br/>
      numatune: Add doc for new numatune XML (Osier Yang),<br/>
      Fix documentation of virStreamRecv (Matthias Bolte),<br/>
      updated list of applications using libvirt. (Ohad Levy),<br/>
      improve VIR_DOMAIN_AFFECT_CURRENT description (Eric Blake),<br/>
      Add doc for video element (Osier Yang),<br/>
      Make hvsupport.pl pick up the host device drivers (Matthias Bolte)<br/>
      </li>

      <li>Portability:<br/>
      Explicitly invoke python for API doc generator (Daniel Veillard),<br/>
      fix virParseVersionString with linux 3.0 (Scott Moser),<br/>
      Add conditionals to allow build without SASL (Daniel P. Berrange),<br/>
      Add missing include of signal.h in virnetsocket.c (Daniel P. Berrange),<br/>
      Fix compilation with systemtap 1.3 (Matthias Bolte),<br/>
      build: fix mingw build (Eric Blake),<br/>
      daemon: Fix build without polkit (Jiri Denemark),<br/>
      build: fix 'make check' when pdwtags is available (Eric Blake),<br/>
      build: sanlock-devel is not in F15 yet (Eric Blake),<br/>
      Only include parthelper if built with storage_disk (Ruben Kerkhof),<br/>
      build: fix VPATH builds (Eric Blake),<br/>
      python: Don't declare Py_ssize_t for Python 2.6 (Matthias Bolte),<br/>
      build: avoid python 2.4 build failure (Eric Blake),<br/>
      build: fix NUMA build on RHEL 5 (Eric Blake),<br/>
      build: avoid python 2.4 build failure (Eric Blake),<br/>
      build: avoid compiler failure (Eric Blake),<br/>
      build: fix compilation on systems missing libnl and new includes (Stefan Berger),<br/>
      configure: Make libnl optional unless macvtap is required (Matthias Bolte),<br/>
      build: require newer netcf when it is available (Eric Blake),<br/>
      build: fix building error when building without libvirtd (Wen Congyang),<br/>
      Skip nodeinfo test on non intel architectures (Guido Günther),<br/>
      Fix dlopen dependency (Matthias Bolte),<br/>
      virt-aa-helper: add missing include (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      initialize pointer to NULL (Wen Congyang),<br/>
      storage: avoid crash on parse error (Eric Blake),<br/>
      vmware: avoid null deref on failed lookup (Eric Blake),<br/>
      qemu: avoid null deref on low memory (Eric Blake),<br/>
      rpc: avoid memory leak on error (Eric Blake),<br/>
      rpc: fix logic bug (Eric Blake),<br/>
      pci: avoid memory leak on error (Eric Blake),<br/>
      interface: avoid memory leak on parse error (Eric Blake),<br/>
      libvirtd: avoid memory leak on OOM (Eric Blake),<br/>
      build: avoid double-close bug with pipe2 (Eric Blake),<br/>
      rpc: avoid freeing uninitialized variable (Eric Blake),<br/>
      virsh: avoid uninitialized variable (Eric Blake),<br/>
      virsh: avoid integer overflow (Eric Blake),<br/>
      Fix stream procedure number for virDomainMigratePrepareTunnel3 (Daniel P. Berrange),<br/>
      Fix release of virNetMessagePtr instances in streams processing (Daniel P. Berrange),<br/>
      Fix potential crash when saving guests (Daniel P. Berrange),<br/>
      Fix uninitialized value in QEMU monitor FD sending code (Daniel P. Berrange),<br/>
      Fix leak of JSON object for events (Daniel P. Berrange),<br/>
      Fix use of uninitialized memory when releasing PCI slots (Daniel P. Berrange),<br/>
      Fix leak of virStreamPtr object with callback added in fdstream impl (Daniel P. Berrange),<br/>
      Fix leak of mdnsGroupName in virNetServer object (Daniel P. Berrange),<br/>
      Fix release of filtered stream messages (Daniel P. Berrange),<br/>
      save domain status after modifying vcpupin (Wen Congyang),<br/>
      Fix memory leak in virDomainVcpuPinDel() (Wen Congyang),<br/>
      sysinfo: fix illegal NULL return (Minoru Usui),<br/>
      Fix locking wrt virNetClientStreamPtr object (Daniel P. Berrange),<br/>
      Avoid referencing NULL pointer when copying stream error (Daniel P. Berrange),<br/>
      Avoid free'ing a filtered RPC message in the server (Daniel P. Berrange),<br/>
      Ensure empty payload is written upon stream completion (Daniel P. Berrange),<br/>
      Fix propagation of RPC errors from streams (Daniel P. Berrange),<br/>
      Fix crash when aborting a stream from a I/O callback (Daniel P. Berrange),<br/>
      dnsmasq: Fix errno handling and don't unlink non-existing files (Matthias Bolte),<br/>
      tests: Fix memory leak in virnetmessagetest (Osier Yang),<br/>
      conf: Fix memory leak in virNetworkDNSDefFormat (Osier Yang),<br/>
      sysinfo: fix parsing regression (Eric Blake),<br/>
      remote: fix uninitialized variable (Eric Blake),<br/>
      build: avoid uninitialized variable (Eric Blake),<br/>
      buf: protect against integer overflow (Eric Blake),<br/>
      remote: protect against integer overflow (Eric Blake),<br/>
      Fix typo in libvirt_private.syms (Matthias Bolte),<br/>
      Fix some bugs in RPC protocol make rules (Daniel P. Berrange),<br/>
      Fix job type set in qemuMigrationPrepareDirect/PrepareTunnel (Daniel P. Berrange),<br/>
      Avoid high privileges taint warning for QEMU session driver (Daniel P. Berrange),<br/>
      util: Fix memory leak in virJSONParserHandleStartMap (Osier Yang),<br/>
      qemu: Fix memory leak in qemuProcessWaitForMonitor (Osier Yang),<br/>
      storage: fix volDelete return when volume still being allocated (Matthew Booth),<br/>
      Fix use-after-free in handling domain taint flags (Daniel P. Berrange),<br/>
      qemu: Fix one memory leak (Osier Yang),<br/>
      virsh: avoid bogus description (Eric Blake),<br/>
      set and restore MAC address of a NIC when using PASSTHROUGH mode (Dirk Herrendoerfer),<br/>
      conf: Fix one memory leak (Osier Yang),<br/>
      Add missing checks for NULL in domain lock manager (Daniel P. Berrange),<br/>
      Fix errno return in safezero() (Daniel P. Berrange),<br/>
      Fix allocation of veth's to not skip an index (Daniel P. Berrange),<br/>
      command: avoid double close (Eric Blake),<br/>
      qemu: Fix parsing 'info chardev' (Cole Robinson),<br/>
      vcpupin: Fix cpu affinity setting bug of qemu driver (Taku Izumi),<br/>
      daemon: plug memory leak (Eric Blake),<br/>
      qemu: add missing break statement (Eric Blake),<br/>
      storage: avoid mishandling backing store &gt; 2GB (Eric Blake)<br/>
      </li>

      <li>Improvements:<br/>
      tests: Add a general util test (Matthias Bolte),<br/>
      util: choose whether to require micro in version strings (Eric Blake),<br/>
      build: consistently use CFLAGS (Eric Blake),<br/>
      build: simplify sanlock distribution (Eric Blake),<br/>
      build: allow 'make syntax-check' on fresh checkout (Eric Blake),<br/>
      Send back an error if we get unexpected stream control message (Daniel P. Berrange),<br/>
      Add test case for parsing JSON docs (Daniel P. Berrange),<br/>
      Remove bogus warning message in JSON code (Daniel P. Berrange),<br/>
      Ensure RPC message is cleared before being reused (Daniel P. Berrange),<br/>
      Fix hardcoded limit on client requests in RPC code (Daniel P. Berrange),<br/>
      tests: Add valgrind.supp into EXTRA_DIST (Osier Yang),<br/>
      virsh: Fix a problem of buildPoolXML (Osier Yang),<br/>
      lock qemu_driver early in qemuGetSchedulerParametersFlags() (Wen Congyang),<br/>
      build: avoid pod2man on tarball (Eric Blake),<br/>
      Ensure that EOF is dispatched to the stream callback (Daniel P. Berrange),<br/>
      Improve two log messages in virNetMessage (Daniel P. Berrange),<br/>
      Lower logging level when failing to register socket watch (Daniel P. Berrange),<br/>
      screenshot: Set access rights to temporary file (Michal Privoznik),<br/>
      maint: improve makefile whitespace (Eric Blake),<br/>
      network: Don't ignore errors in dnsmasq config file creation (Matthias Bolte),<br/>
      network: Fix dnsmasq hostsfile creation logic and related tests (Matthias Bolte),<br/>
      build: update translated files (Eric Blake),<br/>
      Support automatic creation of leases for disks in sanlock (Daniel P. Berrange),<br/>
      Support loading a configuration file for sanlock plugin (Daniel P. Berrange),<br/>
      Allow per-driver config file for lock manager plugins (Daniel P. Berrange),<br/>
      network: add domain to unqualified names defined with &lt;host&gt; (Laine Stump),<br/>
      Convert libvirtd over to the new RPC handling APIs (Daniel P. Berrange),<br/>
      Convert the remote driver to new RPC client APIs (Daniel P. Berrange),<br/>
      Add XDR_CFLAGS to libvirt-net-rpc.la library (Daniel P. Berrange),<br/>
      Ensure sanlock socket is labelled with the VM process label (Daniel P. Berrange),<br/>
      Add a virSecurityManagerSetProcessFDLabel (Daniel P. Berrange),<br/>
      Rename virSecurityManagerSetFDLabel method (Daniel P. Berrange),<br/>
      Add node prefix to virNodeGet(CPU|Memory)Stats structs and defines (Matthias Bolte),<br/>
      qemu: Fix update device for CURRENT + FORCE flags (Jiri Denemark),<br/>
      nwfilter: Return error message about unresolvable variables (Stefan Berger),<br/>
      build: rename Vcpupin to VcpuPin (Eric Blake),<br/>
      sysinfo: cleanup function/struct names. (Minoru Usui),<br/>
      sysinfo: fix lack of error check in virSysinfoFormat(). (Minoru Usui),<br/>
      tests: Partly fix networkxml2argvtest being configure result dependent (Matthias Bolte),<br/>
      qemu: Remove bogus error codes for NUMA memory tuning (Osier Yang),<br/>
      network: fix indentation in networkBuildDnsmasqArgv (Laine Stump),<br/>
      vcpupin: add query option to virsh vcpupin command (Taku Izumi),<br/>
      vcpuinfo: add the code to fallback to try new API (Taku Izumi),<br/>
      vcpupin: implement the remote protocol to address the new API (Taku Izumi),<br/>
      vcpupin: implement the code to support new API for the qemu driver (Taku Izumi),<br/>
      build: update gnulib for intprops (Eric Blake),<br/>
      Rename iface(G|S)etMacaddr to iface(G|S)etMacAddress for consistency (Matthias Bolte),<br/>
      Network: Add support for DNS hosts definition to the network XML (Michal Novotny),<br/>
      Network: Add additional hosts internal infrastructure (Michal Novotny),<br/>
      Network: Add regression tests for the command-line arguments (Michal Novotny),<br/>
      Network: modify dnsmasq commandline build function to allow testing (Michal Novotny),<br/>
      tests: Improve IPv6 detection for virNetSocket tests (Matthias Bolte),<br/>
      Move load of AppArmor profile to GenLabel() (Jamie Strandboge),<br/>
      Add Memory Device Information to virSysinfoRead() from dmidecode type 17 (Minoru Usui),<br/>
      Add Processor Information to virSysinfoRead() from dmidecode type 4 (Minoru Usui),<br/>
      Cleanup virSysinfoRead() (Minoru Usui),<br/>
      Make sure virnetprotocol.[ch] are in BUILT_SOURCES (Daniel P. Berrange),<br/>
      maint: typo fixes (Eric Blake),<br/>
      Add missing translation of error message from QEMU reboot patch (Daniel P. Berrange),<br/>
      Allow automatic kill of guests when a connection is closed (Daniel P. Berrange),<br/>
      Automatically kill target QEMU if migration aborts abnormally (Daniel P. Berrange),<br/>
      Add infrastructure to automatically destroy guests when a connection closes (Daniel P. Berrange),<br/>
      Move the RPC generator scripts into src/rpc (Daniel P. Berrange),<br/>
      Introduce generic RPC client objects (Daniel P. Berrange),<br/>
      Introduce generic RPC module for advertising via MDNS (Daniel P. Berrange),<br/>
      Introduce generic RPC server objects (Daniel P. Berrange),<br/>
      Integrate TLS/SASL directly into the socket APIs (Daniel P. Berrange),<br/>
      Generic module for handling SASL authentication &amp; encryption (Daniel P. Berrange),<br/>
      Generic module for handling TLS encryption and x509 certs (Daniel P. Berrange),<br/>
      Introduce a generic object for using network sockets (Daniel P. Berrange),<br/>
      Provide a simple object for encoding/decoding RPC messages (Daniel P. Berrange),<br/>
      Defines the basics of a generic RPC protocol in XDR (Daniel P. Berrange),<br/>
      build: update to latest gnulib (Eric Blake),<br/>
      python: Generate virStreamFree but don't expose in bindings (Cole Robinson),<br/>
      maint: avoid future setgid problems (Eric Blake),<br/>
      qemu: Only check for NUMA availability if required (Jiri Denemark),<br/>
      util: avoid PATH_MAX-sized array (Eric Blake),<br/>
      xen: avoid PATH_MAX-sized array (Eric Blake),<br/>
      tests: avoid PATH_MAX-sized array (Eric Blake),<br/>
      virStorageVol: avoid PATH_MAX-sized array (Eric Blake),<br/>
      cleanup: make several interface functions commonly available (Stefan Berger),<br/>
      cleanup: make nlComm commonly available (Stefan Berger),<br/>
      maint: remove syntax-check exception (Eric Blake),<br/>
      Remove macvtap dependency on domain configuration (Daniel P. Berrange),<br/>
      util: Correct the error prompt string (Osier Yang),<br/>
      Fix to python API extractor and API doc generation (Daniel Veillard),<br/>
      qemu: domain I/O asynchronous handling (Michal Privoznik),<br/>
      python: Mark event callback wrappers as private (Cole Robinson),<br/>
      python: events: Fix C-&gt;Python handle callback prototype (Cole Robinson),<br/>
      python: Add bindings for virEvent*Handle/Timeout (Cole Robinson),<br/>
      events: Correct virEventAddTimeout docs (Cole Robinson),<br/>
      Promote virEvent*Handle/Timeout to public API (Cole Robinson),<br/>
      python: Implement virStreamSend/RecvAll helpers (Cole Robinson),<br/>
      python: Implement virStreamSend/Recv (Cole Robinson),<br/>
      conf: Make full use of goto label (Osier Yang),<br/>
      python: Implement bindings for virStreamEventAddCallback (Cole Robinson),<br/>
      python: generator: Don't print warning if nothing to warn about (Cole Robinson),<br/>
      python: libvirt-override: use simpler debug (Cole Robinson),<br/>
      virsh: enhance snapshot-create-as (Eric Blake),<br/>
      virsh: add snapshot-create-as command (Eric Blake),<br/>
      virsh: clarify snapshot vs. save (Eric Blake),<br/>
      Fix compile warnings in virsh vcpupin (Daniel P. Berrange),<br/>
      remote generator: Allow to annotate arrays with typecasts (Matthias Bolte),<br/>
      remote: Handle functions that return optional strings (Matthias Bolte),<br/>
      remote: Generate virDomainGetBlockPullInfo (Matthias Bolte),<br/>
      vcpupin: add vcpupin resetting feature to qemu driver (Taku Izumi),<br/>
      vcpupin: add virDomainVcpupinDel function (Taku Izumi),<br/>
      vcpupin: add reset option to virsh vcpupin command (Taku Izumi),<br/>
      vcpupin: improve vcpupin definition of virsh vcpupin (Taku Izumi),<br/>
      Fix preprocessor indentation in nodeinfo.c (Matthias Bolte),<br/>
      Move XenAPI driver to correct spec file section (Matthias Bolte),<br/>
      numatune: Add tests for numatune XML (Osier Yang),<br/>
      numatune: Support NUMA memory tuning in qemu driver (Osier Yang),<br/>
      numatune: Support persistent XML for numatune (Osier Yang),<br/>
      numatune: Define XML schema (Osier Yang),<br/>
      Update qemuDomainSetBlkioParameters to use flags (Hu Tao),<br/>
      update qemuDomainGetBlkioParameters to use flags (Hu Tao),<br/>
      Add new parameters for blkiotune (Hu Tao),<br/>
      apparmor: implement AppArmorSetFDLabel() (Jamie Strandboge),<br/>
      Add missing error reporting when loading mac filter config for QEMU (Daniel P. Berrange),<br/>
      virsh: Add support for virDomainGetControlInfo (Jiri Denemark),<br/>
      qemu: Implement virDomainGetControlInfo (Jiri Denemark),<br/>
      Wire protocol and remote driver for virDomainGetControlInfo (Jiri Denemark),<br/>
      sendkey: use consistent API convention (Eric Blake),<br/>
      build: export correct function names (Eric Blake),<br/>
      build: avoid compiler warning on non-Linux (Eric Blake),<br/>
      remote generator: Handle struct returning functions better (part 2) (Matthias Bolte),<br/>
      Fix apibuild.py warnings about missing comment headers (Matthias Bolte),<br/>
      remote generator: Handle struct returning functions better (Matthias Bolte),<br/>
      support for Xen HVM Viridian (Hyper-V) enlightenment interface (Daniel Gollub),<br/>
      virsh: reduce complexity in argv iteration (Eric Blake),<br/>
      Add support for network filter code in LXC driver (Daniel P. Berrange),<br/>
      qemu: Translate boot config into bootindex if possible (Jiri Denemark),<br/>
      spice: add &lt;clipboard copypaste='yes|no'&gt; option (Marc-André Lureau),<br/>
      virNodeGetMemoryStats: Implement linux support (Minoru Usui),<br/>
      virNodeGetMemoryStats: Implement virsh support (Minoru Usui),<br/>
      virNodeGetMemoryStats: Implement remote protocol (Minoru Usui),<br/>
      virNodeGetMemoryStats: Implement public API (Minoru Usui),<br/>
      virNodeGetMemoryStats: Define internal driver API (Minoru Usui),<br/>
      virNodeGetCPUStats: Implement linux support (Minoru Usui),<br/>
      virNodeGetCPUStats: Implement virsh support (Minoru Usui),<br/>
      virNodeGetCPUStats: Implement remote protocol (Minoru Usui),<br/>
      virNodeGetCPUStats: Define internal driver API (Minoru Usui),<br/>
      virNodeGetCPUStats: Expose new API (Minoru Usui),<br/>
      Fix autostart flag when loading running domains (Michael Chapman),<br/>
      send-key: Implementing the remote protocol (Lai Jiangshan),<br/>
      send-key: Implementing the public API (Lai Jiangshan),<br/>
      send-key: Defining the internal API (Lai Jiangshan),<br/>
      remote generator: Handle (unsigned) int arrays (Lai Jiangshan),<br/>
      add VSH_OFLAG_REQ_OPT options (Lai Jiangshan),<br/>
      allow name for VSH_OT_ARGV options (Lai Jiangshan),<br/>
      storage: avoid an intermediate malloc (Eric Blake),<br/>
      command: reduce duplicated debug messages (Eric Blake),<br/>
      qemu: Scrape stdout for virtio console pty (Cole Robinson),<br/>
      virsh: Add daemon version reporting (Michal Privoznik),<br/>
      nodeinfo: remove superfluous braces (Guido Günther),<br/>
      util: Cleanup indention problem in virterror.c (Osier Yang),<br/>
      qemu: Parse current balloon value returned by query_balloon (Osier Yang),<br/>
      Deprecate several CURRENT/LIVE/CONFIG enums (Hu Tao),<br/>
      qemu: Faster response time to qemu startup errors (Stefan Berger),<br/>
      build: update to latest gnulib (Eric Blake),<br/>
      vcpupin: add the new option to "virsh vcpupin" command (Taku Izumi),<br/>
      vcpupin: implement the remote protocol to address the new API (Taku Izumi),<br/>
      vcpupin: implement the code to address the new API in the qemu driver (Taku Izumi),<br/>
      Use virTimeMs when appropriate (Jiri Denemark),<br/>
      Introduce virTimeMs for getting current time in ms (Jiri Denemark),<br/>
      test: Remove unused timeval (Jiri Denemark),<br/>
      tests: add a test for multi function PCI device (Wen Congyang),<br/>
      the hotplugged PCI device should use the whole slot (Wen Congyang),<br/>
      assign the whole slot to the PCI device that has no address (Wen Congyang),<br/>
      Reimplement qemuDomainPCIAddressReserveSlot(): reserve all functions in the slot (Wen Congyang),<br/>
      the key of hash table should include the function value (Wen Congyang),<br/>
      prevent hot unplugging multi function PCI device (Wen Congyang),<br/>
      check whether qemu supports multi function PCI device (Wen Congyang),<br/>
      xenapi: Improve error message on session failure (Matthew Booth),<br/>
      qemu: Fix one type in the error prompt string (Osier Yang),<br/>
      Move VMware Workstation/Player driver to correct spec file section (Matthias Bolte),<br/>
      esx: avoid dead code (Eric Blake),<br/>
      qemu: reorder checks for safety (Eric Blake),<br/>
      uuid: annotate non-null requirements (Eric Blake),<br/>
      debug: avoid null dereference on uuid lookup api (Eric Blake),<br/>
      python: avoid unlikely sign extension bug (Eric Blake),<br/>
      build: detect Coverity 5.3.0 (Eric Blake),<br/>
      build: Fix typos in configure.ac (Osier Yang),<br/>
      virsh: Expose virDomainMigrateSetMaxSpeed API to virsh (Osier Yang),<br/>
      lxc: Ensure container &lt;init&gt; actually exists (Cole Robinson),<br/>
      lxc: Verify root fs exists before mounting (Cole Robinson),<br/>
      lxc: controller: Improve container error reporting (Cole Robinson),<br/>
      lxc: Improve guest startup error reporting (Cole Robinson),<br/>
      lxc: Refactor controller command building (Cole Robinson),<br/>
      lxc: Don't report error in Wait/SendContinue (Cole Robinson),<br/>
      lxc: Drop container stdio as late as possible (Cole Robinson),<br/>
      util: Implement virRun as a wrapper around virCommand (Cole Robinson),<br/>
      qemu: Convert virExec usage to virCommand (Cole Robinson),<br/>
      Use VIR_USE_CPU instead of new wheel (Osier Yang),<br/>
      Avoid virGetVersion failure on specific driver support configurations (Matthias Bolte)<br/>
      </li>

      <li>Cleanups:<br/>
      cgroup: silence coverity warning (Eric Blake),<br/>
      rpc: silence coverity warning (Eric Blake),<br/>
      qemu: silence coverity warnings (Eric Blake),<br/>
      build: avoid 'make syntax-check' failure (Eric Blake),<br/>
      build: remove dead variables (Eric Blake),<br/>
      Remove bogus jsondata.h file reference which does not exist (Daniel P. Berrange),<br/>
      build: ignore generated file (Eric Blake),<br/>
      build: Don't expect translatable strings in a dead file (Jiri Denemark),<br/>
      Cleanup remote protocol definitions (Daniel P. Berrange),<br/>
      Remove obsolete libvirtd mdns code (Daniel P. Berrange),<br/>
      build: avoid long line tests (Eric Blake),<br/>
      maint: add omitted copyright header (Eric Blake),<br/>
      build: break some long lines (Eric Blake),<br/>
      build: silence coverity false positives (Eric Blake),<br/>
      secret: drop dead code (Eric Blake),<br/>
      build: silence coverity false positive (Eric Blake),<br/>
      Move virRun, virExec*, virFork to util/command (Cole Robinson),<br/>
      util: Remove unused virExec wrapper (Cole Robinson),<br/>
      esx: Remove duplicated invalid-argument checks (Matthias Bolte)<br/>
      </li>
    </ul>

    <h3>0.9.2: Jun 06 2011</h3>
    <ul>
      <li>Features:<br/>
      Framework for lock manager plugins (Daniel P. Berrange),<br/>
      API for network config change transactions (Michal Privoznik),<br/>
      flags for setting memory parameters (Hu Tao),<br/>
      virDomainGetState public API (Jiri Denemark),<br/>
      qemu: allow blkstat/blkinfo calls during migration (Federico Simoncelli),<br/>
      Introduce migration v3 API (Daniel P. Berrange),<br/>
      Defining the Screenshot public API (Michal Privoznik),<br/>
      public API for NMI injection (Lai Jiangshan)<br/>
      </li>

      <li>Documentation:<br/>
      esx: Fix driver method version annotations (Matthias Bolte),<br/>
      vbox: Fix typo in error message (Matthias Bolte),<br/>
      virsh: Document nodeinfo output (Jiri Denemark),<br/>
      Correct 'cputune' documentation example. (Neil Wilson),<br/>
      document iface-* commands (Eric Blake),<br/>
      Add initial docs about the lock managers (Daniel P. Berrange),<br/>
      maint: use consistent file name for threading notes (Eric Blake),<br/>
      Fix virTypedParameter alias comments (Matthias Bolte),<br/>
      Fix error syntax of vcpupin example XML (Osier Yang),<br/>
      Automatically generate the hvsupport.html.in file from source files (Daniel P. Berrange),<br/>
      Fix documentation for cputune parameters (Osier Yang),<br/>
      avoid double 'the' (Eric Blake),<br/>
      Add documentation about test suites (Daniel Veillard),<br/>
      updates to CA cert and client cert/key info (Doug Goldstein),<br/>
      node filesystem attr is 'accessmode', not 'mode' (Cole Robinson)<br/>
      </li>

      <li>Portability:<br/>
      vbox: Fix version extraction on Windows for newer VirtualBox versions (Matthias Bolte),<br/>
      Make dlopen usage in lock manager conditional (Matthias Bolte),<br/>
      build: fix VPATH build break from previous patch (Eric Blake),<br/>
      Remove call to deprecated gnutls_certificate_type_set_priority (Daniel P. Berrange),<br/>
      Fix sysinfo/virsh build problems on Win32 (Daniel P. Berrange),<br/>
      Fix build with --with-driver-modules enabled (Matthias Bolte),<br/>
      build: fix 'make dist' for ./configure --without-remote (Eric Blake),<br/>
      virsh: time_t is not a long on FreeBSD (Matthias Bolte),<br/>
      time_t is not a long on FreeBSD, switch internal type to long long (Matthias Bolte),<br/>
      build: avoid strerror_r pitfalls (Eric Blake),<br/>
      build: fix VIR_DEBUG on mingw (Eric Blake),<br/>
      build: generate files when building without libvirtd (Wen Congyang),<br/>
      build: drop unused sys/syslimits.h header (Eric Blake),<br/>
      Fix prototype of virRun for Win32 targets (Daniel P. Berrange),<br/>
      build: tolerate unlimited group size (Eric Blake),<br/>
      Disable virCommandExec on Win32 (Daniel P. Berrange),<br/>
      command: Fix compilation on FreeBSD (Matthias Bolte),<br/>
      apparmor: Fix compilation by removing remains from virCommand conversion (Matthias Bolte),<br/>
      configure: Fix mpath check on non-Linux systems (Matthias Bolte),<br/>
      fix xdr detection and use with recent glibc (Christophe Fergeau),<br/>
      build: avoid gcc preprocessor extensions (Eric Blake),<br/>
      build: fix VPATH build with distributed generated files (Eric Blake),<br/>
      build: fix VPATH builds (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Fix QEMU p2p v2 migration when run from a v3 client (Daniel P. Berrange),<br/>
      Don't raise an error if the migration cookie is NULL (Daniel P. Berrange),<br/>
      Fix check of virKillProcess return status (Daniel P. Berrange),<br/>
      qemu: Avoid use after free in qemuCaps parsing (Jiri Denemark),<br/>
      security driver: ignore EINVAL when chowning an image file (Laine Stump),<br/>
      migrate: detect xml incompatibility (Eric Blake),<br/>
      event: avoid memory leak on cleanup (Eric Blake),<br/>
      qemu: avoid memory leak on vcpupin (Eric Blake),<br/>
      remote: avoid leak on failure (Eric Blake),<br/>
      lock: avoid leak on failure (Eric Blake),<br/>
      storage: avoid memory leak on stat failure (Eric Blake),<br/>
      storage: avoid memory leak (Eric Blake),<br/>
      libvirtd: avoid leak on failure (Eric Blake),<br/>
      command: avoid leak on failure (Eric Blake),<br/>
      Explicitly set VM state to paused after migration completes (Daniel P. Berrange),<br/>
      Fix regressions BlockStats/Info APIs in QEMU driver (Daniel P. Berrange),<br/>
      Fix minor issues in libxenlight managed save (Jim Fehlig),<br/>
      Fix auditing of disk hotunplug operations (Daniel P. Berrange),<br/>
      Avoid crash on NULL pointer in lock driver impls during hotplug (Daniel P. Berrange),<br/>
      Fix return value in lock manager hotplug methods (Daniel P. Berrange),<br/>
      Make sure virDomainSave/virDomainManagedSave reset id to -1 (Daniel P. Berrange),<br/>
      Fix handling of VIR_EVENT_HANDLE_ERROR in QEMU monitor (Daniel P. Berrange),<br/>
      security: plug regression introduced in disk probe logic (Eric Blake),<br/>
      Fix order of disks and controllers (Jiri Denemark),<br/>
      util: Fix incorrect error in PCI functions (Osier Yang),<br/>
      openvz: Restore original EOF handling in openvzGetProcessInfo (Matthias Bolte),<br/>
      openvz: Handle getline failures in openvzReadConfigParam properly (Matthias Bolte),<br/>
      conf: Fix incorrect spice graphic XML format on compression options (Michal Privoznik),<br/>
      nwfilter: reorder locks (Stefan Berger),<br/>
      openvz: Fix regression in openvzGetVPSUUID (Matthias Bolte),<br/>
      esx: Fix regression in absolute file name handling (Matthias Bolte),<br/>
      openvz: Fix regression in config file parsing (Taisuke Yamada),<br/>
      audit: fix minor off-by-one (Eric Blake),<br/>
      Fix libxl vm def handling on domU cleanup (Markus Groß),<br/>
      Fix modifying disk devices in qemu driver (Markus Groß),<br/>
      json: Avoid passing large positive 64 bit integers to QMP. (Richard W.M. Jones),<br/>
      Fix initialization of current vcpus in libxl driver (Jim Fehlig),<br/>
      qemu: Don't change ownership of file when appending to it (Michal Privoznik),<br/>
      qemu: fix typo in name - should be VHOST_NET, not VNET_HOST (Laine Stump),<br/>
      Fix QEMU -vnc arg generation with raw IPv6 addresses (Daniel P. Berrange),<br/>
      Fix peer2peer migration with transient VMs (Daniel P. Berrange),<br/>
      python: Don't free must-not-free variables (Michal Privoznik),<br/>
      python: Fix typo in bindings (Michal Privoznik),<br/>
      libvirt.spec: /var/cache/libvirt should be 0711. (Richard W.M. Jones),<br/>
      remote: remove bogus virDomainFree. (Richard W.M. Jones),<br/>
      qemudDomainMemoryPeek: change ownership/selinux label on temporary file. (Richard W.M. Jones),<br/>
      Fix QEMU migration cookie crash for guests with no graphics (Daniel P. Berrange),<br/>
      Blank out the 'listenAddr' parameter if empty string (Daniel P. Berrange),<br/>
      Improve invalid argument checks for the public API (Matthias Bolte),<br/>
      qemu: fix typo in spice migration code (Michal Privoznik),<br/>
      openvz: fix logic bug in previous patch (Eric Blake),<br/>
      Fix error reporting in stream creation code (Matthias Bolte),<br/>
      virsh: Correctly initialize libvirt (Jiri Denemark),<br/>
      Fix leak of mime type string in screenshot dispatcher (Daniel P. Berrange),<br/>
      Fix remote dispatcher for screenshot command (Daniel P. Berrange),<br/>
      Add missing initialization to 'ret' in qemu migration (Daniel P. Berrange),<br/>
      Close all sockets before cancelling QEMU migration (Daniel P. Berrange),<br/>
      Ensure we always read a full buffer in tunnelled migration (Daniel P. Berrange),<br/>
      phyp: avoid a crash (Eric Blake),<br/>
      stream: avoid use-after-free (Eric Blake),<br/>
      virsh: Fix uninitialized variable warning (Matthias Bolte),<br/>
      libxl: fix typos in previous patch (Eric Blake),<br/>
      node_device: avoid null dereference on error (Eric Blake),<br/>
      tests: avoid crash when run under gcov (Eric Blake),<br/>
      Fix two uninitialized variable warnings (Matthias Bolte),<br/>
      apparmor: Fix uninitalized variable warning in virt-aa-helper (Matthias Bolte),<br/>
      Fix qemuMigrationToFile nonull annotation (Daniel P. Berrange)<br/>
      </li>

      <li>Improvements:<br/>
      API: consolidate common unreleased enums (Eric Blake),<br/>
      uml: correct command line networking parameters (Heath Petersen),<br/>
      Add call to sanlock_restrict() in QEMU lock driver (Daniel P. Berrange),<br/>
      screenshot: Expose the new API in virsh (Michal Privoznik),<br/>
      libxl: adds managed save and restore support (Markus Groß),<br/>
      libxl: get maximum memory of running domain (Markus Groß),<br/>
      Add a plugin for the 'sanlock' project (Daniel P. Berrange),<br/>
      Allow leases to be hotpluged with QEMU guests (Daniel P. Berrange),<br/>
      Support passing QEMU lock state to dest during migration (Daniel P. Berrange),<br/>
      Integrate the QEMU driver with the lock manager infrastructure (Daniel P. Berrange),<br/>
      Add higher level lock API for domain objects (Daniel P. Berrange),<br/>
      Add a 'nop' lock driver implementation. (Daniel P. Berrange),<br/>
      Support leases in guest XML and lock manager (Daniel P. Berrange),<br/>
      Allow handshake with child process during startup (Daniel P. Berrange),<br/>
      tests: really fix QEMU XML-2-ARGV graphics-spice-timeout test (Eric Blake),<br/>
      build: avoid corrupting / in RHEL 5 (Eric Blake),<br/>
      tests: Add a test for correct disk device ordering (Jiri Denemark),<br/>
      Fix QEMU XML-2-ARGV graphics-spice-timeout test (Matthias Bolte),<br/>
      remote generator: Handle some virTypedParameterPtr using functions (Matthias Bolte),<br/>
      apibuild: Restrict long usage to existing functions and structs (Matthias Bolte),<br/>
      remote generator: Legacy support for hyper to long mappings (Matthias Bolte),<br/>
      Use common parameter order for remote(De)SerializeTypedParameters (Matthias Bolte),<br/>
      openvz: Add simple test for openvzReadNetworkConf (Matthias Bolte),<br/>
      openvz: Set virtType to openvz in openvzLoadDomains (Matthias Bolte),<br/>
      storage: List directory volumes for dir/fs/netfs pools (Cole Robinson),<br/>
      tests: Add more complex domain scheme test data (Michal Privoznik),<br/>
      tests: Test for SPICE compression options (Michal Privoznik),<br/>
      Ignore backward compatibility macros in apibuild.py (Matthias Bolte),<br/>
      openvz: fix bridge devices parsing in openvzReadNetworkConf() (Jean-Baptiste Rouault),<br/>
      Allow custom XML to be passed in during migration (Daniel P. Berrange),<br/>
      Allow virsh to pass in a custom XML document for migration (Daniel P. Berrange),<br/>
      Add an API for comparing the ABI of two guest configurations (Daniel P. Berrange),<br/>
      Remove unused 'target' field in virDomainHostdevDef (Daniel P. Berrange),<br/>
      lxc: Seperate domain config loading (Osier Yang),<br/>
      openvz: Automatically disable on non-Linux systems (Matthias Bolte),<br/>
      Support maximum and current memory flags in libxl driver (Markus Groß),<br/>
      Add domainSave/Restore to libxl driver (Markus Groß),<br/>
      Add domainCoreDump to libxl driver (Markus Groß),<br/>
      Populate domid field of devices for libxenlight (Markus Groß),<br/>
      Issue full error messages when processing QEMU monitor I/O (Daniel P. Berrange),<br/>
      Don't kill QEMU process when a monitor I/O parsing error occurs (Daniel P. Berrange),<br/>
      Introduce a new event emitted when a virtualization failure occurs (Daniel P. Berrange),<br/>
      sched: provide new API shims for remaining drivers (Eric Blake),<br/>
      virsh: improve schedinfo querying ability (Eric Blake),<br/>
      remote: introduce remoteGetSchedulerParametersFlags (Eric Blake),<br/>
      qemu: introduce qemuGetSchedulerParametersFlags (Eric Blake),<br/>
      sched: introduce virDomainGetSchedulerParametersFlags (Eric Blake),<br/>
      remote: consolidate typed parameter handling (Eric Blake),<br/>
      maint: prefer newer API names internally (Eric Blake),<br/>
      libvirt.h: avoid regression, and document preferred name (Eric Blake),<br/>
      Fix virExecWithHook Prototype (Richard Laager),<br/>
      interface: reformat error logs (Laine Stump),<br/>
      interface: implement a test driver for network config transaction API. (Michal Privoznik),<br/>
      interface: Implement driver methods for network config transaction API (Michal Privoznik),<br/>
      interface: expose network config transaction API to virsh (Michal Privoznik),<br/>
      interface: implement remote protocol for network config transaction API (Michal Privoznik),<br/>
      interface: implement public APIs for libvirt transactional network changes (Michal Privoznik),<br/>
      interface: define internal driver API for network config transactions (Michal Privoznik),<br/>
      sexpr: Improve serialization error reporting (Matthias Bolte),<br/>
      qemu: implement the new flags for setting memory parameters (Hu Tao),<br/>
      qemu: implement the new flags for getting memory parameters (Hu Tao),<br/>
      qemu : support persistent add/delete network interface (KAMEZAWA Hiroyuki),<br/>
      openvz: Add simple testcase for config file parsing function (Matthias Bolte),<br/>
      Add disk attach/detach support to libxl driver (Markus Groß),<br/>
      Refactored libxl datastructure instantiation (Markus Groß),<br/>
      schema: Add graphics element passwdValidTo attribute to schema (Michal Privoznik),<br/>
      Fix sign mismatches between public API, driver API and XDR protocol (Matthias Bolte),<br/>
      remote generator: Fix XDR sign mismatch for virNodeGet(Cells)FreeMemory (Matthias Bolte),<br/>
      remote generator: Handle stream-using functions (Matthias Bolte),<br/>
      remote generator: Make call-by-reference handling stricter (Matthias Bolte),<br/>
      remote generator: Rename virNodeGetCellsFreeMemory parameters to common pattern (Matthias Bolte),<br/>
      remote generator: Handle virDomainCreateWithFlags (Matthias Bolte),<br/>
      Allow to explicitly disable the secrets a directory storage driver (Matthias Bolte),<br/>
      Fix the signature of virDomainMigrateFinish3 for error reporting (Daniel P. Berrange),<br/>
      Fix preservation of errors across migration steps (Daniel P. Berrange),<br/>
      Improve debug logging of migration APIs (Daniel P. Berrange),<br/>
      Fix error propagation in finish method for v3 migration (Daniel P. Berrange),<br/>
      Fix SPICE seamless migration hostname (Daniel P. Berrange),<br/>
      Fix resume on destination when doing non-live tunnelled migration (Daniel P. Berrange),<br/>
      Introduce two method migration APIs (Daniel P. Berrange),<br/>
      Add a second URI parameter to virDomainMigratePerform3 method (Daniel P. Berrange),<br/>
      Extend v3 migration protocol to allow app supplied XML for target (Daniel P. Berrange),<br/>
      esx: Report an error when auth pointer is missing instead of declining (Matthias Bolte),<br/>
      Perform feature flag compat checking in QEMU migration cookies (Daniel P. Berrange),<br/>
      Replace all remaining setgid/setuid calls with virSetUIDGID (Jiri Denemark),<br/>
      util: Keep errno set to the root error after when returning from virSetUIDGID (Jiri Denemark),<br/>
      storage: Add comment to picking return value of qemu-img (Michal Privoznik),<br/>
      spice: support streaming-video parameter (Alon Levy),<br/>
      nwfilter: enable filtering of gratuitous ARP packets (Stefan Berger),<br/>
      qemu: don't require is_kvm for vhost-net support (Laine Stump),<br/>
      Use per-user TLS certificates when possible (Doug Goldstein),<br/>
      storage: pick return value of qemu-img (Michal Privoznik),<br/>
      remote generator: Add special case for virConnectGetType (Matthias Bolte),<br/>
      remote generator: Don't rely on $_ being stable over a large function (Matthias Bolte),<br/>
      build: require newer gettext (Eric Blake),<br/>
      virsh: Use Env variables for debug level and logfile (Supriya Kannery),<br/>
      Don't generate cookies with v2 migration protocol. (Daniel P. Berrange),<br/>
      Ensure p2p and direct migration use the new v3 protocol if available (Daniel P. Berrange),<br/>
      remote: remove special case for getting version (Eric Blake),<br/>
      virsh: optimize creation of default connection (Eric Blake),<br/>
      Clarify that virDomainGet(Memory|Blkio)Parameters doesn't support subsets (Matthias Bolte),<br/>
      Clarify that virDomainSet(Memory|Blkio)Parameters can take parameter subsets (Matthias Bolte),<br/>
      Clarify that virDomainSetSchedulerParameters(Flags) can take subsets (Matthias Bolte),<br/>
      Clarify the semantic of virDomainGetSchedulerParameters arguments (Matthias Bolte),<br/>
      Clarify semantic of nparams argument of virDomainGetSchedulerType (Matthias Bolte),<br/>
      Fix messages using VIR_ERR_XML_ERROR (Cole Robinson),<br/>
      libvirt.h: consolidate typed parameter handling (Eric Blake),<br/>
      build: update to latest gnulib (Eric Blake),<br/>
      Add support for 'passthru' mode for direct network interfaces (Dirk Herrendorefer),<br/>
      virsh: add parameters --live, --config and --current to cmd schedinfo (Hu Tao),<br/>
      remote: introduce remoteSetSchedulerParametersFlags (Hu Tao),<br/>
      qemu: introduce qemuSetSchedulerParametersFlags (Hu Tao),<br/>
      sched: adjust parameter values to make current = 0 (Eric Blake),<br/>
      introduce virDomainSetSchedulerParametersFlags (Hu Tao),<br/>
      storage_backend: Convert virRunWithHook usage to virCommand (Cole Robinson),<br/>
      storage_backend: Fix error reporting with regex helper (Cole Robinson),<br/>
      storage: Covert regex helpers to virCommand (Cole Robinson),<br/>
      openvz: Convert virExec usage to virCommand (Cole Robinson),<br/>
      storage: iscsi: Convert virExec to virCommand (Cole Robinson),<br/>
      remote generator, client: Add more special case handling (Matthias Bolte),<br/>
      remote generator, client: Handle functions that return an optional string (Matthias Bolte),<br/>
      esx: Simplify some esxVI_Boolean to bool (Matthias Bolte),<br/>
      esx: Convert autoAnswer from esxVI_Boolean to a simple bool (Matthias Bolte),<br/>
      esx: Fix race condition in esxVI_EnsureSession (Matthias Bolte),<br/>
      esx: Whitespace cleanup in the generator (Matthias Bolte),<br/>
      esx: Change some alignments in the input file (Matthias Bolte),<br/>
      esx: Change generated method parameter autobinding (Matthias Bolte),<br/>
      virsh: Report an error when virGetUserDirectory fails (Matthias Bolte),<br/>
      maint: mark more perl scripts executable (Eric Blake),<br/>
      maint: mark perl script executable (Eric Blake),<br/>
      maint: ignore generated file (Eric Blake),<br/>
      Improve error message when XDR marshalling fails (Daniel P. Berrange),<br/>
      Run tunnelled migration IO in separate thread (Daniel P. Berrange),<br/>
      Don't overwrite error when stream send fails (Daniel P. Berrange),<br/>
      Make tunnelled migration honour resource restriction (Daniel P. Berrange),<br/>
      Refactor migration completion loop to allow code reuse (Daniel P. Berrange),<br/>
      Implement migration v3 protocol in QEMU driver (Daniel P. Berrange),<br/>
      Merge tunnel and non-tunnel migration impl into one (Daniel P. Berrange),<br/>
      Fix VM teardown if prepare returns invalid URI in v2 migration (Daniel P. Berrange),<br/>
      Refactor tunnelled migration methods (Daniel P. Berrange),<br/>
      Wire up SPICE client relocation with QEMU migration (Daniel P. Berrange),<br/>
      Pass graphics setup from dst back to src via migration cookies (Daniel P. Berrange),<br/>
      Introduce migration cookies to QEMU driver (Daniel P. Berrange),<br/>
      Fix locking with qemuMigrationPrepareTunnel method (Daniel P. Berrange),<br/>
      Remote driver implementation of new migration API (Daniel P. Berrange),<br/>
      Add many version number annotations to drivers (Daniel P. Berrange),<br/>
      Convert all driver struct intializers to C99 style (Daniel P. Berrange),<br/>
      Tweak driver naming for consistency with public API (Daniel P. Berrange),<br/>
      qemu: Update domain state when reconnecting monitor (Jiri Denemark),<br/>
      Implement domain state reason (Jiri Denemark),<br/>
      Implement basic virDomainGetState in all drivers (Jiri Denemark),<br/>
      virsh: Prefer virDomainGetState over virDomainGetInfo (Jiri Denemark),<br/>
      Wire protocol format and remote driver for virDomainGetState (Jiri Denemark),<br/>
      virDomainGetState public API implementation (Jiri Denemark),<br/>
      Internal driver API for virDomainGetState (Jiri Denemark),<br/>
      esx: Refactor common code in the generator (Matthias Bolte),<br/>
      esx: Improve dynamic cast detection in the generator (Matthias Bolte),<br/>
      esx: Improve list usage detection in the generator (Matthias Bolte),<br/>
      esx: Remove 1000 lines of generated but unused code (Matthias Bolte),<br/>
      esx: Generate implicit _this macros (Matthias Bolte),<br/>
      esx: Move the Event type from the VI generator to manually written code (Matthias Bolte),<br/>
      test: all test_scripts should be part of tarball when building without libvirtd (Wen Congyang),<br/>
      build: probes.d and libvirtd.stp should be part of tarball (Wen Congyang),<br/>
      remote: Convert SSH tunnel to virCommand (Cole Robinson),<br/>
      storage: Convert qemu-img -help parsing to virCommand (Cole Robinson),<br/>
      apparmor: Convert virExec usage to virCommand (Cole Robinson),<br/>
      util: Combine __virExec and virExecWithHook (Cole Robinson),<br/>
      remote_driver: Convert virExecDaemonize usage to virCommand (Cole Robinson),<br/>
      remote: Use virDomainEventState helpers (Cole Robinson),<br/>
      libxl: Convert to virDomainEventState (Cole Robinson),<br/>
      test: Use virDomainEventState helpers (Cole Robinson),<br/>
      lxc: Use virDomainEventState helpers (Cole Robinson),<br/>
      qemu: Use virDomainEventState helpers (Cole Robinson),<br/>
      domain_event: Add common domain event queue/flush helpers (Cole Robinson),<br/>
      domain_event: Add virDomainEventState structure (Cole Robinson),<br/>
      xml: Use virXMLParse* helpers everywhere (Cole Robinson),<br/>
      domain: Require init node for container guests (Cole Robinson),<br/>
      xml: Make sure virXpathNodeSet always sets an error (Cole Robinson),<br/>
      vbox: Implement the Screenshot driver methods (Michal Privoznik),<br/>
      qemu: Implement the Screenshot driver methods (Michal Privoznik),<br/>
      virFDStream: Add option for delete file after it's opening (Michal Privoznik),<br/>
      Implementing the Screenshot remote protocol (Michal Privoznik),<br/>
      Implementing the Screenshot public API (Michal Privoznik),<br/>
      Defining the Screenshot internal API (Michal Privoznik),<br/>
      remote generator: Add skipgen/autogen flags to .x files (Matthias Bolte),<br/>
      nwfilter: drop unused flag argument (Eric Blake),<br/>
      maint: omit translation for all VIR_INFO (Eric Blake),<br/>
      build: wrap macro body in one-shot do-while loop (Eric Blake),<br/>
      build: drop need for VIR_DOMAIN_DEBUG0() (Eric Blake),<br/>
      libvirt,logging: cleanup VIR_XXX0() (Lai Jiangshan),<br/>
      maint: avoid a couple of gnulib regressions (Eric Blake),<br/>
      build: remove some dead assignments (Eric Blake),<br/>
      Allow destroying QEMU VM even if a job is active (Daniel P. Berrange),<br/>
      Add support for YAJL version 2 API/ABI (Daniel P. Berrange),<br/>
      libxl: support enabling the HPET (Paolo Bonzini),<br/>
      libxl: support enabling the HPET (Paolo Bonzini),<br/>
      xen: parse and generate hpet item in sxpr (Paolo Bonzini),<br/>
      virsh: flexibility in CA cert and user cert/key (Doug Goldstein),<br/>
      remote generator: Make parsing stricter (Matthias Bolte),<br/>
      remote generator: Unify unsigned int notation in .x files (Matthias Bolte),<br/>
      remote generator: Fix comment ignoring regex (Matthias Bolte),<br/>
      Rename internal DumpXML functions to GetXMLDesc (Matthias Bolte),<br/>
      qemu,inject-nmi: Implement the driver methods (Lai Jiangshan),<br/>
      inject-nmi: Expose the new API in virsh (Lai Jiangshan),<br/>
      inject-nmi: Implementing the remote protocol (Lai Jiangshan),<br/>
      inject-nmi: Implementing the public API (Lai Jiangshan),<br/>
      inject-nmi: Defining the internal API (Lai Jiangshan),<br/>
      lxc: container: Build init cmd before we close stdout (Cole Robinson),<br/>
      lxc: container: Convert init node exec to virCommand (Cole Robinson),<br/>
      command: Add virCommandExec helper (Cole Robinson),<br/>
      lxc: driver: Improve logging when launching emulator (Cole Robinson),<br/>
      lxc: driver: Convert emulator launching to virCommand (Cole Robinson),<br/>
      command: Add virCommandEnvAddFormat (Cole Robinson),<br/>
      build: translate generated strings (Eric Blake),<br/>
      Pull in gnulib fnmatch module (Daniel P. Berrange),<br/>
      json: Fix *GetBoolean functions (Jiri Denemark),<br/>
      build: rebuild generated files after rpcgen_fix.pl tweak (Eric Blake),<br/>
      Re-add libvirt.spec to tarball to allow "make rpm" (Daniel Veillard),<br/>
      build: Remove all generated RPC files from GIT (Daniel P. Berrange),<br/>
      build: refactor generated RPC files (Daniel P. Berrange),<br/>
      build: rename generated files to .h, for automake's sake (Eric Blake),<br/>
      remote generator, client: Handle arguments with limited length (Matthias Bolte),<br/>
      remote generator, client: Handle functions that return lists (Matthias Bolte),<br/>
      remote: Refactor remote*Open and remote*Close functions (Matthias Bolte),<br/>
      remote generator, client: Handle functions with optional return values (Matthias Bolte),<br/>
      remote generator, client: Handle functions with multiple return values (Matthias Bolte),<br/>
      remote generator, client: Handle functions with wrapped return values (Matthias Bolte),<br/>
      remote generator, client: Handle functions with simple return values (Matthias Bolte),<br/>
      remote generator, client: Handle simple remote driver functions (Matthias Bolte),<br/>
      remote generator: Reorder into prepare and print section (Matthias Bolte),<br/>
      remote generator, daemon: Handle functions with multiple return values (Matthias Bolte),<br/>
      remote generator, daemon: Combine multiple ifs in the generated code (Matthias Bolte),<br/>
      remote generator, daemon: Handle the CPU functions (Matthias Bolte),<br/>
      remote generator: Refactor duplicate code (Matthias Bolte),<br/>
      remote generator, daemon: Handle functions that return lists (Matthias Bolte),<br/>
      remote: Rename 'nameslen' to the common 'maxnames' (Matthias Bolte),<br/>
      remote generator, daemon: Handle functions with optional arguments (Matthias Bolte),<br/>
      remote generator, daemon: Handle more functions (Matthias Bolte),<br/>
      remote generator, daemon: Handle simple-return-value functions (Matthias Bolte),<br/>
      remote generator, daemon: Change capitalization of some words (Matthias Bolte),<br/>
      remote: Replace 'domain' with 'dom' in the XDR protocol (Matthias Bolte),<br/>
      remote generator, daemon: Output function bodies too (Matthias Bolte),<br/>
      remote generator: Replace tabs with spaces and rename file (Matthias Bolte),<br/>
      Balloon dom0 in libxl driver (Markus Groß),<br/>
      remote: check actual access to the cert (Doug Goldstein),<br/>
      maint: avoid comparisons to bool constants (Eric Blake),<br/>
      Add warning message to XML definition files stored on disk (Michal Privoznik),<br/>
      Fix security driver handling of FIFOs with QEMU (Daniel P. Berrange),<br/>
      Make taint warnings also go into the domain logfile (Daniel P. Berrange),<br/>
      Add a qemuDomainAppendLog method for writing to the domain logfile (Daniel P. Berrange),<br/>
      Move qemuProcessLogReadFD and qemuProcessLogFD methods (Daniel P. Berrange),<br/>
      Log taint warnings in QEMU driver (Daniel P. Berrange),<br/>
      Add field to virDomainObjPtr to track "tainting" (Daniel P. Berrange),<br/>
      virsh: improve TLS certificate error messages (Doug Goldstein),<br/>
      virsh: use new method for easier log to file (Eric Blake),<br/>
      buf: add virBufferVasprintf (Eric Blake),<br/>
      maint: rename virBufferVSprintf to virBufferAsprintf (Eric Blake),<br/>
      Make QEMU migration use cached qemu capabilities data (Daniel P. Berrange),<br/>
      Make QEMU hotplug use cached qemu capabilities data (Daniel P. Berrange),<br/>
      Persist qemu capabilities in the domain status file (Daniel P. Berrange)<br/>
      </li>

      <li>Cleanups:<br/>
      build: silence coverity false positive (Eric Blake),<br/>
      build: silence coverity false positive (Eric Blake),<br/>
      .gitignore: Exempt a new test binary. (Eric Blake),<br/>
      Ensure hvsupport.html.in is built before HTML validation (Daniel P. Berrange),<br/>
      Fix a make check error (Daniel Veillard),<br/>
      Add sexpr.c to the list of file with translatable messages (Matthias Bolte),<br/>
      don't check flags in virDomainSetSchedulerParametersFlags (Hu Tao),<br/>
      build: silence clang false positive (Eric Blake),<br/>
      Remove obsolete remoteDispatchOOMError method (Daniel P. Berrange),<br/>
      remote: keep 'make check' happy (Eric Blake),<br/>
      build: avoid compiler warning during configure (Wen Congyang),<br/>
      Remove bogus assert() from migration code (Daniel P. Berrange),<br/>
      build: drop files generated by config.status from tarball (Eric Blake)<br/>
      </li>
    </ul>

    <h3>0.9.1: May 05 2011</h3>
    <ul>
      <li>Features:<br/>
      support various persistent domain updates (KAMEZAWA Hiroyuki),<br/>
      improvements on memory APIs (Taku Izumi),<br/>
      Add virDomainEventRebootNew (Matthias Bolte),<br/>
      various improvements to libxl driver (Markus Groß),<br/>
      Spice: support audio, images and stream compression (Michal Privoznik)<br/>
      </li>

      <li>Documentation:<br/>
      fix missing VLAN id for Qbg example (Gerhard Stenzel),<br/>
      docs: Document filesystem tag device (Cole Robinson),<br/>
      maint: fix comment typos (Eric Blake),<br/>
      Fix two out-of-date comments in LVM backend (Richard Laager),<br/>
      docs: Serial and parallel device target ports actually start from 0 (Matthias Bolte),<br/>
      maint: fix grammar errors (Eric Blake),<br/>
      docs: document freecell --all (Eric Blake),<br/>
      docs: remove "returns" word from beginning of lines (Jean-Baptiste Rouault),<br/>
      docs: add an IPv6 address to network XML examples (Laine Stump)<br/>
      </li>

      <li>Portability:<br/>
      build: fix getcwd portability problems (Eric Blake),<br/>
      build: avoid test warnings on mingw (Eric Blake),<br/>
      virsh: avoid compiler warning on mingw (Eric Blake),<br/>
      build: Use pkg-config for libssh2 check (Jiri Denemark),<br/>
      build: Ignore old audit library (Jiri Denemark),<br/>
      build: fix 32-bit test failure (Eric Blake),<br/>
      build: Fix problem of building Python bindings (Osier Yang),<br/>
      build: fix 32-bit test failure (Eric Blake),<br/>
      ppc: Enable starting of Qemu VMs on ppc host (Stefan Berger),<br/>
      Migrate VMs between different-endianess hosts (Stefan Berger),<br/>
      build: really fix mingw startup (Eric Blake),<br/>
      build: fix mingw build (Eric Blake),<br/>
      do not build libvirt_iohelper when building without libvirtd (Wen Congyang),<br/>
      virsh: fix mingw startup (Eric Blake),<br/>
      build: avoid compiler warning on cygwin (Eric Blake),<br/>
      Fix build for older gcc (Jim Fehlig),<br/>
      Don't try to enable stack protector on Win32 (Daniel P. Berrange)<br/>
      </li>

      <li>Bug Fixes:<br/>
      storage: avoid null deref and leak on failure (Eric Blake),<br/>
      esx: Avoid null dereference on error in esxDomainGetInfo (Matthias Bolte),<br/>
      remote: avoid null dereference on error (Eric Blake),<br/>
      cgroup: avoid leaking a file (Eric Blake),<br/>
      virsh: avoid null pointer dereference (Eric Blake),<br/>
      pci: fix null pointer dereference (Eric Blake),<br/>
      qemu: avoid null pointer dereference (Eric Blake),<br/>
      tests: avoid null pointer dereference (Eric Blake),<br/>
      Fix disability to run on systems with no PCI bus (Michal Privoznik),<br/>
      virsh: fix regression in log to file (Supriya Kannery),<br/>
      nwfilter: Fix memory leak in the ebtables subdriver (Matthias Bolte),<br/>
      qemu: Fix qemuDomainModifyDeviceFlags leaking the caps bitmap (Matthias Bolte),<br/>
      Fix memory leak in __virExec (Matthias Bolte),<br/>
      hash: fix memory leak regression (Eric Blake),<br/>
      Xen: Do not generate net ifname if domain is inactive (Jim Fehlig),<br/>
      xen: check if device is assigned to guest before reattaching (Yufang Zhang),<br/>
      util: Initialize hooks at daemon shutdown if no hooks defined (Osier Yang),<br/>
      fix virsh's regression (Wen Congyang),<br/>
      release PCI address only when we have ensured it successfully (Wen Congyang),<br/>
      free memory properly in cleanup patch (Hu Tao),<br/>
      free buf content when vsnprintf() failed (Wen Congyang),<br/>
      esx: Fix dynamic dispatch for CastFromAnyType functions (Matthias Bolte),<br/>
      Make crash and live flags mutually exclusive in virDomainCoreDump (Mark Wu),<br/>
      Fix small memory leaks in config parsing related functions (Matthias Bolte),<br/>
      daemon: Don't try to free an unsigned int in error paths (Matthias Bolte),<br/>
      Fix QEMU tunnelled migration FD handling (Daniel P. Berrange),<br/>
      Remove artificial minimum limit for guest memory (Jiri Denemark),<br/>
      fix tunnelled migration's regression (Wen Congyang),<br/>
      qemu: fix the check of virDomainObjUnref()'s return value (Wen Congyang),<br/>
      Fix checking of return codes in dispatcher (Daniel P. Berrange),<br/>
      qemu: avoid qemu_driver being unlocked twice when virThreadPoolNew() failed (Wen Congyang),<br/>
      virsh: fix regression in parsing optional integer (Eric Blake),<br/>
      phyp: avoid memory leaks in command values (Eric Blake),<br/>
      phyp: avoid memory leak on failure (Eric Blake),<br/>
      phyp: avoid a logic bug (Eric Blake),<br/>
      free cpumask of vcpupinDef (Hu Tao),<br/>
      network: Fix NULL dereference during error recovery (Michal Privoznik),<br/>
      Add missing checks for QEMU domain state in tunables APIs (Daniel P. Berrange),<br/>
      phyp: Fix too small buffer allocation in phypAttachDevice (Matthias Bolte),<br/>
      phyp: Don't overwrite error from virDomainDeviceDefParse by OOM error (Matthias Bolte),<br/>
      phyp: Don't try to use a string from a failed virAsprintf (Matthias Bolte),<br/>
      phyp: Remove stack allocating a 4kb volume key and fix related memory leaks (Matthias Bolte),<br/>
      qemu: fix a dead-lock problem (Hu Tao),<br/>
      util: Fix crash when removing entries during hash iteration (Jiri Denemark),<br/>
      Fix possible infinite loop in remote driver (Michal Privoznik),<br/>
      qemu: Remove the managed state file only if restoring succeeded (Osier Yang),<br/>
      reattach pci devices when qemuPrepareHostdevPCIDevices() failed (Wen Congyang),<br/>
      reattach pci device when pciBindDeviceToStub() failed (Wen Congyang),<br/>
      remove devices from driver activePciHostdevs when qemuPrepareHostdevPCIDevices() failed (Wen Congyang),<br/>
      pci: avoid invalid free, init path to NULL (Wen Congyang),<br/>
      qemu: Support for overriding NPROC limit (Jiri Denemark),<br/>
      qemu: Always reserves slot 0x02 for primary VGA. (Osier Yang),<br/>
      Fix typo in systemtap tapset directory name (Daniel P. Berrange),<br/>
      qemu: Ignore unusable binaries (Jiri Denemark)<br/>
      </li>

      <li>Improvements:<br/>
      maint: detect clang 2.9 (Eric Blake),<br/>
      qemu: update qemuCgroupControllerActive signature (Eric Blake),<br/>
      lxc: report correct error (Eric Blake),<br/>
      libxl: avoid compiler warning (Eric Blake),<br/>
      storage: use virCommand to avoid compiler warning (Eric Blake),<br/>
      tests: Lower stack usage below 4096 bytes (Matthias Bolte),<br/>
      tests: Update valgrind suppressions file (Matthias Bolte),<br/>
      tests: simplify common setup (Eric Blake),<br/>
      network: fix return value of hostsFileWrite (Laine Stump),<br/>
      libvirt/qemu - support persistent attach/detach disks (KAMEZAWA Hiroyuki),<br/>
      libvirt/qemu - support persistent modification of devices (KAMEZAWA Hiroyuki),<br/>
      util: Simplify hash implementation (Jiri Denemark),<br/>
      tests: More unit tests for internal hash APIs (Jiri Denemark),<br/>
      Move call to virReportOOMError into virFileBuildPath (Matthias Bolte),<br/>
      build: use gnulib passfd for simpler SCM_RIGHTS code (Eric Blake),<br/>
      qemu: Add flags checking in DomainCoreDump (Jiri Denemark),<br/>
      Make sure DNSMASQ_STATE_DIR exists (Guido Günther),<br/>
      build: make VIR_FREE do some type checking (Eric Blake),<br/>
      threads: add one-time initialization support (Eric Blake),<br/>
      esx: Add a wrapper for shared CURL handles (Matthias Bolte),<br/>
      esx: Move CURL handling code to it's own type (Matthias Bolte),<br/>
      daemon: Honor error variable name change in the generator (Matthias Bolte),<br/>
      libvirt/qemu - clean up UpdateDevice for consolidation. (KAMEZAWA Hiroyuki),<br/>
      libvirt/qemu - clean up At(De)tachDeviceFlags() for consolidation. (KAMEZAWA Hiroyuki),<br/>
      libvirt/qemu - Centralize device modification in the more flexible APIs (KAMEZAWA Hiroyuki),<br/>
      Add support for s390(x) cpu options parsing (Michal Privoznik),<br/>
      PHYP: Adding reboot domain function (Eduardo Otubo),<br/>
      nwfilter: no support for direct type of interface (Stefan Berger),<br/>
      Add cputune support to libxl driver (Markus Groß),<br/>
      Update and sort msg_gen_function list and mark unmarked messages (Matthias Bolte),<br/>
      Write error check conditionals in more compact form for dispatcher (Daniel P. Berrange),<br/>
      Merge all returns paths from dispatcher into single path (Daniel P. Berrange),<br/>
      Experimental libvirtd upstart job (Alan Pevec),<br/>
      enhance processWatchdogEvent() (Wen Congyang),<br/>
      xen: Replace statsErrorFunc with a macro (Matthias Bolte),<br/>
      tests: Unit tests for internal hash APIs (Jiri Denemark),<br/>
      build: include esx_vi.generated.* into dist file (Wen Congyang),<br/>
      tests: test recent virsh option parsing changes (Eric Blake),<br/>
      virsh: list required options first (Eric Blake),<br/>
      phyp: use consistent return string handling (Eric Blake),<br/>
      maint: use lighter-weight function for straight appends (Eric Blake),<br/>
      libvirt-guests: implement START_DELAY (Alexander Todorov),<br/>
      network: truncate bridges' dummy tap device names to IFNAMSIZ (15) chars (Laine Stump),<br/>
      Introduce virDomainChrDefNew() (Michal Novotny),<br/>
      esx: Make the parsed URI part of the private connection data (Matthias Bolte),<br/>
      esx: Mark error message in macros for translation (Matthias Bolte),<br/>
      esx: Extend VI generator to cover managed object types (Matthias Bolte),<br/>
      esx: Cleanup and refactor CastFromAnyType macros (Matthias Bolte),<br/>
      esx: Cleanup VI generator code (Matthias Bolte),<br/>
      phyp: Reduce code duplication in error and success paths (Matthias Bolte),<br/>
      Replace REMOTE_DEBUG with VIR_DEBUG in daemon dispatcher (Daniel P. Berrange),<br/>
      Add missing checks for whether the connection is open in dispatcher (Daniel P. Berrange),<br/>
      PHYP: Adding network interface (Eduardo Otubo),<br/>
      xen: Remove PATH_MAX sized stack allocation from block stats code (Matthias Bolte),<br/>
      setmaxmem: add the new options to "virsh setmaxmem" command (Taku Izumi),<br/>
      maxmem: implement virDomainSetMaxMemory API of the qemu driver (Taku Izumi),<br/>
      maxmem: introduces VIR_DOMAIN_MEM_MAXIMUM flag (Taku Izumi),<br/>
      nwfilters: support for TCP flags evaluation (Stefan Berger),<br/>
      setmem: add --current option to virsh setmem command (Taku Izumi),<br/>
      setmem: add VIR_DOMAIN_MEM_CURRENT support to qemu (Taku Izumi),<br/>
      setmem: introduce VIR_DOMAIN_MEM_CURRENT flag (Taku Izumi),<br/>
      build: Install libxenlight log dir (Jim Fehlig),<br/>
      Add domainSet/GetSchedulerParameters to libxl driver (Markus Groß),<br/>
      rename pciUnBindDeviceFromStub() to pciUnbindDeviceFromStub() and float it up (Wen Congyang),<br/>
      Add domainIsUpdated to libxl driver (Markus Groß),<br/>
      Change locking for udev monitor and callbacks (Serge Hallyn),<br/>
      Improve SCSI volume key generation (Daniel P. Berrange),<br/>
      qemu: Rewrite LOOKUP_PTYS macro into a function (Jiri Denemark),<br/>
      Enable use of -Wold-style-definition compiler flag (Daniel P. Berrange),<br/>
      Enable use of -Wmissing-noreturn (Daniel P. Berrange),<br/>
      Enable -Wmissing-format-attribute warning (Daniel P. Berrange),<br/>
      Use gnulib's manywarnings and warnings modules (Daniel P. Berrange),<br/>
      Use virBufferPtr for sexpr2string instead of manual buffer handling (Matthias Bolte),<br/>
      xend: Remove 4kb stack allocation (Matthias Bolte),<br/>
      uml: Remove PATH_MAX sized stack allocation from /proc parsing code (Matthias Bolte),<br/>
      storage: Remove PATH_MAX sized stack allocation from iSCSI backend (Matthias Bolte),<br/>
      qemu: Remove PATH_MAX sized stack allocation used in commandline building (Matthias Bolte),<br/>
      Remove PATH_MAX sized stack allocation from virFileOpenTtyAt (Matthias Bolte),<br/>
      openvz: Remove several larger stack allocations (Matthias Bolte),<br/>
      daemon: Remove 4kb stack allocation of security label (Matthias Bolte),<br/>
      virsh: Remove two 4kb stack allocations (Matthias Bolte),<br/>
      Use virFileAbsPath instead of manually creating the absolute path (Matthias Bolte),<br/>
      xenxs: Remove PATH_MAX sized stack allocation in XM script parsing (Matthias Bolte),<br/>
      sasl: Remove stack allocated 8kb temporary buffers (Matthias Bolte),<br/>
      qemu: Use heap allocated memory to read the monitor greeting (Matthias Bolte),<br/>
      phyp: Remove 16kb stack allocation (Matthias Bolte),<br/>
      virt-aa-helper: Remove PATH_MAX sized stack allocations (Matthias Bolte),<br/>
      ebtables: Remove PATH_MAX sized stack allocation (Matthias Bolte),<br/>
      pci: Remove PATH_MAX sized stack allocations (Matthias Bolte),<br/>
      Remove PATH_MAX sized stack allocations related to virFileBuildPath (Matthias Bolte),<br/>
      vmx: Use case-insensitive compare functions for all content (Matthias Bolte),<br/>
      vmx: Support persistent CPU shares (Matthias Bolte),<br/>
      Add autostart support to libxl driver (Markus Groß),<br/>
      Allow relative path for qemu backing file (Jesse Cook),<br/>
      build: detect potentential uninitialized variables (Eric Blake)<br/>
      </li>

      <li>Cleanups:<br/>
      esx: Disable performance counter queries in esxDomainGetInfo (Matthias Bolte),<br/>
      esx: Remove dead store in esxUtil_ParseDatastorePath (Matthias Bolte),<br/>
      util: remove dead assignment (Eric Blake),<br/>
      qemu: remove dead assignment (Eric Blake),<br/>
      qemu: silence clang false positives (Eric Blake),<br/>
      tests: suppress more valgrind situations (Eric Blake),<br/>
      tests: avoid compiler warning (Eric Blake),<br/>
      qemu: fix uninitialized variable warning (Christophe Fergeau),<br/>
      build: fix syntax-check failure (Eric Blake),<br/>
      virsh: nuke use of TRUE and FALSE (Eric Blake),<br/>
      phyp: another simplification (Eric Blake),<br/>
      maint: ignore built file (Eric Blake),<br/>
      Change some variable names to follow standard in daemon dispatcher (Daniel P. Berrange),<br/>
      Remove curly braces on all single-line conditional jumps in dispatcher (Daniel P. Berrange),<br/>
      Remove virConnectPtr from virRaiseErrorFull (Matthias Bolte),<br/>
      phyp: prefer memcpy over memmove when legal (Eric Blake),<br/>
      phyp: use consistent style for labels (Eric Blake),<br/>
      phyp: more return handling cleanup (Eric Blake),<br/>
      esx: Fix gcc 4.6 warning about initialized but unused variables (Matthias Bolte),<br/>
      maint: silence cppi warnings (Eric Blake),<br/>
      Fix gcc 4.6 warnings in vbox_tmpl.c (Christophe Fergeau),<br/>
      Fix gcc 4.6 warnings (Christophe Fergeau),<br/>
      Remove C99 variable declare in PHYP network driver (Daniel P. Berrange),<br/>
      Standard on error variable name in libvirtd dispatcher (Daniel P. Berrange),<br/>
      Remove all whitespace before function brackets in daemon dispatcher (Daniel P. Berrange),<br/>
      docs: tweak virsh restore warning (Eric Blake),<br/>
      setmaxmem: remove the code to invoke virDomainSetMemory in cmdSetmaxmem (Taku Izumi),<br/>
      build: fix gitignore sorting (Eric Blake),<br/>
      tests: fix recent test failures (Eric Blake),<br/>
      libxl: avoid compiler warning (Eric Blake),<br/>
      Avoid compiler warnings about int to void * casts (Daniel P. Berrange),<br/>
      Remove acinclude.m4 file (Daniel P. Berrange),<br/>
      Remove possible uninitialized variable in openvz driver (Daniel P. Berrange)<br/>
      </li>
    </ul>

    <h3>0.9.0: Apr 04 2011</h3>
    <ul>
      <li>Features:<br/>
      Support cputune cpu usage tuning (Osier Yang and Nikunj A. Dadhania),<br/>
      Add public APIs for storage volume upload/download (Daniel P. Berrange),<br/>
      Add public API for setting migration speed on the fly (Daniel P. Berrange),<br/>
      Add libxenlight driver (Jim Fehlig and Markus Groß),<br/>
      qemu: support migration to fd (Eric Blake),<br/>
      libvirt: add virDomain{Get,Set}BlkioParameters (Gui Jianfeng),<br/>
      setmem: introduce a new libvirt API (virDomainSetMemoryFlags) (Taku Izumi),<br/>
      Expose event loop implementation as a public API (Daniel P. Berrange),<br/>
      Dump the debug buffer to libvirtd.log on fatal signal (Daniel Veillard),<br/>
      Audit support (Eric Blake)<br/>
      </li>

      <li>Documentation:<br/>
      fix typo (Eric Blake),<br/>
      correct invalid xml (Eric Blake),<br/>
      virsh: Fix documentation for memtune command (Jiri Denemark),<br/>
      Fix several formatting mistakes in doc (Michal Privoznik),<br/>
      mention C89 syntax preferences (Eric Blake),<br/>
      document recent hook additions (Eric Blake),<br/>
      Update on the goal page (Daniel Veillard),<br/>
      Document first release with spice and qxl (Cole Robinson),<br/>
      Add schema definition for imagelabel (Osier Yang),<br/>
      update virGetVersion description (Tiziano Mueller),<br/>
      Improve logging documentation including the debug buffer (Daniel Veillard),<br/>
      update windows page for initial libvirt 0.8.8 installer (Justin Clift),<br/>
      formatdomain.html.in: Fix spelling PIC-&gt;PCI (Philipp Hahn),<br/>
      fix missing &lt;p&gt; (Eric Blake),<br/>
      documenting the 802.1Qbg parameters of a 'direct' interface (Gerhard Stenzel),<br/>
      silence warnings about generated API docs (Eric Blake),<br/>
      document &lt;driver name='vhost'/&gt; for interfaces (Eric Blake),<br/>
      correct range of default NAT subnet (Eric Blake),<br/>
      formatdomain: Add release info for disk &lt;driver&gt; attributes (Cole Robinson),<br/>
      Fix spelling mistake: seek (Philipp Hahn),<br/>
      maint: fix grammar in error message (Eric Blake)<br/>
      </li>

      <li>Portability:<br/>
      virsh: fix mingw failure on creating nonblocking pipe (Eric Blake),<br/>
      Remove iohelper on Win32 since it is not required (Daniel P. Berrange),<br/>
      Fix domain events C example on Win32 (Daniel P. Berrange),<br/>
      build: fix compilation on mingw (Eric Blake),<br/>
      util: use SCM_RIGHTS in virFileOperation when needed (Eric Blake),<br/>
      Don't use INT64_MAX in libvirt.h because it requires stdint.h (Matthias Bolte),<br/>
      libvirtd: Remove indirect linking (Guido Günther),<br/>
      build: avoid compiler warning on cygwin (Eric Blake),<br/>
      build: fix build on cygwin (Eric Blake),<br/>
      build: fix building error when building without libvirtd (Wen Congyang),<br/>
      virsh: Remove indirect link against libxml2 (Guido Günther),<br/>
      Fix build on cygwin (Daniel Veillard),<br/>
      Add check for kill() to fix build of cgroups on win32 (Daniel P. Berrange),<br/>
      build: fix broken mingw cross-compilation (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      fix memory leak in qemuProcessHandleGraphics() (Wen Congyang),<br/>
      do not lock vm while allocating memory (Wen Congyang),<br/>
      Fix libxl driver startup (Daniel Veillard),<br/>
      qemu: Ignore libvirt debug messages in qemu log (Jiri Denemark),<br/>
      qemu: Fix improper logic of qemuCgroupSetup (Osier Yang),<br/>
      free tmp after unlinking it (Wen Congyang),<br/>
      qemu: Fix media eject with qemu-0.12.* (Jiri Denemark),<br/>
      check whether qemuMonitorJSONHMP() failed (Wen Congyang),<br/>
      do not send monitor command after monitor meet error (Wen Congyang),<br/>
      qemu: unlock qemu driver before return from domain save (Hu Tao),<br/>
      qemu: fix regression with fd labeling on migration (Eric Blake),<br/>
      Ignore return value of virDomainObjUnref (Markus Groß),<br/>
      Fix infinite loop in daemon if client quits with multiple streams open (Daniel P. Berrange),<br/>
      qemu: fix regression that hangs on save failure (Eric Blake),<br/>
      qemu: fix restoring a compressed save image (Eric Blake),<br/>
      util: allow clearing cloexec bit (Eric Blake),<br/>
      logging: always NUL-terminate circular buffer (Eric Blake),<br/>
      tests: don't alter state in $HOME (Eric Blake),<br/>
      qemu: don't restore state label twice (Eric Blake),<br/>
      Fix syntax error in configure.ac (Osier Yang),<br/>
      remote: Don't leak gnutls session on negotiation error (Matthias Bolte),<br/>
      hooks: fix regression in previous patch (Eric Blake),<br/>
      Add missing { for qemudDomainInterfaceStats (Philipp Hahn),<br/>
      daemon: Avoid resetting errors before they are reported (Jiri Denemark),<br/>
      fix the check of the output of monitor command 'device_add' (Wen Congyang),<br/>
      Make error reporting in libvirtd thread safe (Jiri Denemark),<br/>
      update domain status forcibly even if attach a device failed (Wen Congyang),<br/>
      util: Fix return value for virJSONValueFromString if it fails (Osier Yang),<br/>
      Initialization error of qemuCgroupData in Qemu host usb hotplug (Wen Congyang),<br/>
      build: fix missing initializer (Eric Blake),<br/>
      Fix uninitialized variable &amp; error reporting in LXC veth setup (Daniel P. Berrange),<br/>
      udev: fix regression with qemu:///session (Eric Blake),<br/>
      logging: fix off-by-one bug (Eric Blake),<br/>
      do not report OOM error when prepareCall() failed (Wen Congyang),<br/>
      Don't return an error on failure to create blkio controller (Hu Tao),<br/>
      qemu: respect locking rules (Eric Blake),<br/>
      openvz: fix a simple bug in openvzListDefinedDomains() (Jean-Baptiste Rouault),<br/>
      Fix delayed event delivery when SASL is active (Daniel P. Berrange),<br/>
      qemu: Fix copy&amp;paste error messages in text monitor (Jiri Denemark),<br/>
      do not unref obj in qemuDomainObjExitMonitor* (Wen Congyang),<br/>
      qemu: check driver name while attaching disk (Wen Congyang),<br/>
      remote: Add missing virCondDestroy calls (Matthias Bolte),<br/>
      build: improve rpm generation for distro backports (Eric Blake),<br/>
      storage: Fix a problem which will cause libvirtd crashed (Osier Yang),<br/>
      Fix misc bugs in virCommandPtr (Daniel P. Berrange),<br/>
      libvirt: fix a simple bug in virDomainSetMemoryFlags() (Taku Izumi),<br/>
      qemu: Check the unsigned integer overflow (Osier Yang),<br/>
      audit: eliminate potential null pointer deref when auditing macvtap devices (Laine Stump),<br/>
      network driver: don't send default route to clients on isolated networks (Laine Stump),<br/>
      virsh: Free stream when shutdown console (Osier Yang),<br/>
      Add missing checks for read only connections (Guido Günther),<br/>
      qemu: fix -global argument usage (Eric Blake),<br/>
      Make sure we reset the umask on the error path (Guido Günther),<br/>
      qemu: Stop guest CPUs before creating a snapshot (Jiri Denemark),<br/>
      qemu: Escape snapshot name passed to {save,load,del}vm (Jiri Denemark),<br/>
      qemu: Fix warnings in event handlers (Jiri Denemark),<br/>
      storage: Update qemu-img flag checking (Osier Yang),<br/>
      Make sure the rundir is accessible by the user (Guido Günther),<br/>
      Fix a wrong error message thrown to user (Hu Tao),<br/>
      unlock eventLoop before calling callback function (Wen Congyang),<br/>
      fixes for several memory leaks (Phil Petty),<br/>
      Fix a counter bug in the log buffer (Daniel Veillard),<br/>
      qemu: avoid corruption of domain hashtable and misuse of freed domains (Laine Stump),<br/>
      qemu: Add missing lock of virDomainObj before calling virDomainUnref (Laine Stump),<br/>
      esx: Escape password for XML (Matthias Bolte),<br/>
      util: correct retry path in virFileOperation (Eric Blake),<br/>
      util: Allow removing hash entries in virHashForEach (Jiri Denemark),<br/>
      qemu: avoid double close on domain restore (Eric Blake),<br/>
      Fix port value parsing for serial and parallel ports (Michal Novotny),<br/>
      Fix off-by-1 in virFileAbsPath. (Daniel P. Berrange),<br/>
      security: avoid memory leak (Eric Blake),<br/>
      protect the scsi controller to be deleted when it is in use (Wen Congyang),<br/>
      virsh: freecell --all getting wrong NUMA nodes count (Michal Privoznik),<br/>
      remove duplicated call to reportOOMError (Christophe Fergeau)<br/>
      </li>

      <li>Improvements:<br/>
      Make check_fc_host() and check_vport_capable() usable as rvalues (Guido Günther),<br/>
      maint: avoid locale-sensitivity in string case comparisons (Eric Blake),<br/>
      extend logging to record configuration-related changes (Naoya Horiguchi),<br/>
      Add libvirt_iohelper to spec file (Daniel Veillard),<br/>
      cputune: New tests for cputune XML (Osier Yang),<br/>
      cputune: Support cputune for xend driver (Osier Yang),<br/>
      cputune: Support cputune for lxc driver (Osier Yang),<br/>
      cputune: Support cputune for qemu driver (Osier Yang),<br/>
      cputune: Implementations of parsing and formating cputune xml (Osier Yang),<br/>
      cputune: Add data structures presenting cputune XML (Osier Yang),<br/>
      cputune: Add document for cputune XML (Osier Yang),<br/>
      cputune: Add XML schema for cputune xml (Osier Yang),<br/>
      qemu: improve error message on failed fd transfer (Eric Blake),<br/>
      maint: ignore new built file (Eric Blake),<br/>
      Add domainSuspend/Resume to libxl driver (Markus Groß),<br/>
      Add domainGetOSType to libxl driver (Markus Groß),<br/>
      Add domainGetSchedulerType to libxl driver (Markus Groß),<br/>
      Implements domainXMLTo/FromNative in libxl driver (Markus Groß),<br/>
      Add vcpu functions to libxl driver (Markus Groß),<br/>
      List authors in copyright headers (Markus Groß),<br/>
      Add event callbacks to libxl driver (Markus Groß),<br/>
      Remote protocol support for storage vol upload/download APIs (Daniel P. Berrange),<br/>
      Support volume data upload/download APIs in storage driver (Daniel P. Berrange),<br/>
      Add vol-upload and vol-download commands to virsh (Daniel P. Berrange),<br/>
      Enhance the streams helper to support plain file I/O (Daniel P. Berrange),<br/>
      Update event loop example programs to demonstrate best practice (Daniel P. Berrange),<br/>
      qemu: support fd: migration with compression (Eric Blake),<br/>
      qemu: skip granting access during fd migration (Eric Blake),<br/>
      qemu: consolidate migration to file code (Eric Blake),<br/>
      qemu: use common API for reading difficult files (Eric Blake),<br/>
      qemu, storage: improve type safety (Eric Blake),<br/>
      util: adjust indentation in previous patch (Eric Blake),<br/>
      util: rename virFileOperation to virFileOpenAs (Eric Blake),<br/>
      storage: simplify fd handling (Eric Blake),<br/>
      qemu: simplify domain save fd handling (Eric Blake),<br/>
      qemu: allow simple domain save to use fd: protocol (Eric Blake),<br/>
      Update of localisations, switch to transifex (Daniel Veillard),<br/>
      build: shorten libxenlight summary for consistent alignment (Eric Blake),<br/>
      command: add virCommandAbort for cleanup paths (Eric Blake),<br/>
      command: don't mix RunAsync and daemons (Eric Blake),<br/>
      command: properly diagnose process exit via signal (Eric Blake),<br/>
      Add memory functions to libxl driver (Markus Groß),<br/>
      build: enforce reference count checking (Eric Blake),<br/>
      maint: prohibit access(,X_OK) (Eric Blake),<br/>
      Get cpu time and current memory balloon from libxl (Markus Groß),<br/>
      build: nuke all .x-sc* files, and fix VPATH syntax-check (Eric Blake),<br/>
      command: reject pidfile on non-daemon (Eric Blake),<br/>
      rpm: add missing dependencies (Eric Blake),<br/>
      rpm: separate runtime and build requirements (Eric Blake),<br/>
      qemu: simplify monitor callbacks (Eric Blake),<br/>
      8021Qbh: use preassociate-rr during the migration prepare stage (Roopa Prabhu),<br/>
      Wire up virDomainMigrateSetSpeed into QEMU driver (Daniel P. Berrange),<br/>
      Wire up virDomainMigrateSetSpeed for the remote RPC driver (Daniel P. Berrange),<br/>
      maint: update authors (Eric Blake),<br/>
      Disable libxl build in RPM on Fedora &lt; 16 (Daniel P. Berrange),<br/>
      qemu: fallback to HMP drive_add/drive_del (Hu Tao),<br/>
      qemu: Only use HMP passthrough if it is supported (Jiri Denemark),<br/>
      qemu: Detect support for HMP passthrough (Jiri Denemark),<br/>
      qemu: add two hook script events "prepare" and "release" (Thibault Vincent),<br/>
      qemu: simplify interface fd handling in monitor (Eric Blake),<br/>
      qemu: simplify PCI configfd handling in monitor (Eric Blake),<br/>
      qemu: simplify monitor fd error handling (Eric Blake),<br/>
      util: guarantee sane errno in virFileIsExecutable (Eric Blake),<br/>
      Don't build libxenlight driver for Xen 4.0 (Jim Fehlig),<br/>
      network driver: log error and abort network startup when radvd isn't found (Laine Stump),<br/>
      build: translate changes in previous patch (Eric Blake),<br/>
      Ensure binary is resolved wrt $PATH in virExec (Daniel P. Berrange),<br/>
      util: Forbid calling hash APIs from iterator callback (Jiri Denemark),<br/>
      Avoid taking lock in libvirt debug dump (Daniel Veillard),<br/>
      unlock the monitor when unwatching the monitor (Wen Congyang),<br/>
      Add vim configuration that makes vim auto-indent code (Hu Tao),<br/>
      virsh: fix memtune's help message for swap_hard_limit (Nikunj A. Dadhania),<br/>
      Add PCI sysfs reset access (Alex Williamson),<br/>
      Support Xen sysctl v8, domctl v7 (Jim Fehlig),<br/>
      macvtap: log an error if on failure to connect to netlink socket (Laine Stump),<br/>
      qemu: improve efficiency of dd during snapshots (Eric Blake),<br/>
      virsh: allow empty string arguments (Eric Blake),<br/>
      qemu: Fallback to HMP when cpu_set QMP command is not found (Wen Congyang),<br/>
      Change message for VIR_FROM_RPC error domain (Daniel P. Berrange),<br/>
      Add compat function for geteuid() (Daniel P. Berrange),<br/>
      Add virSetBlocking() to allow O_NONBLOCK to be toggle on or off (Daniel P. Berrange),<br/>
      qemu: use more appropriate error (Eric Blake),<br/>
      Make LXC container startup/shutdown/I/O more robust (Daniel P. Berrange),<br/>
      Allow to dynamically set the size of the debug buffer (Daniel Veillard),<br/>
      qemu: consolidate duplicated monitor migration code (Eric Blake),<br/>
      qemu: use lighter-weight fd:n on incoming tunneled migration (Eric Blake),<br/>
      Fix performance problem of virStorageVolCreateXMLFrom() (Minoru Usui),<br/>
      libvirt-guests: avoid globbing when splitting $URIS (Eric Blake),<br/>
      libvirt-guest.init: quoting variables (Philipp Hahn),<br/>
      virsh: Insert error messages to avoid a quiet abortion of commands (Michal Privoznik),<br/>
      python: Use hardcoded python path in libvirt.py (Jiri Denemark),<br/>
      virsh: Allow starting domains by UUID (Jiri Denemark),<br/>
      network driver: Use a separate dhcp leases file for each network (Laine Stump),<br/>
      network driver: Start dnsmasq even if no dhcp ranges/hosts are specified. (Laine Stump),<br/>
      libvirt-guest.init: handle domain name with spaces (Philipp Hahn),<br/>
      domain.rng vs. formatdomain.html#elementsUSB (Philipp Hahn),<br/>
      Ignore backing file errors in FS storage pool (Philipp Hahn),<br/>
      remote-protocol: implement new BlkioParameters API (Gui Jianfeng),<br/>
      virsh: Adding blkiotune command to virsh tool (Gui Jianfeng),<br/>
      qemu: implement new BlkioParameters API (Gui Jianfeng),<br/>
      libvirt: implements virDomain{Get,Set}BlkioParameters (Gui Jianfeng),<br/>
      setmem: add the new options to "virsh setmem" command (Taku Izumi),<br/>
      setmem: implement the remote protocol to address the new API (Taku Izumi),<br/>
      setmem: implement the code to address the new API in the qemu driver (Taku Izumi),<br/>
      audit: audit use of /dev/net/tun, /dev/tapN, /dev/vhost-net (Eric Blake),<br/>
      qemu: don't request cgroup ACL access for /dev/net/tun (Eric Blake),<br/>
      qemu: support vhost in attach-interface (Eric Blake),<br/>
      qemu: Refactor qemuDomainSnapshotCreateXML (Jiri Denemark),<br/>
      qemu: Fallback to HMP for snapshot commands (Jiri Denemark),<br/>
      qemu: Setup infrastructure for HMP passthrough (Jiri Denemark),<br/>
      qemu: Replace deprecated option of qemu-img (Osier Yang),<br/>
      audit: also audit cgroup ACL permissions (Eric Blake),<br/>
      cgroup: allow fine-tuning of device ACL permissions (Eric Blake),<br/>
      audit: rename remaining qemu audit functions (Eric Blake),<br/>
      audit: also audit cgroup controller path (Eric Blake),<br/>
      audit: split cgroup audit types to allow more information (Eric Blake),<br/>
      audit: tweak audit messages to match conventions (Eric Blake),<br/>
      Don't overwrite virRun error messages (Cole Robinson),<br/>
      virsh: Change option parsing functions to return tri-state information (Michal Privoznik),<br/>
      virsh: change vshCommandOptString return type and fix const-correctness (Michal Privoznik),<br/>
      support to detach USB disk (Wen Congyang),<br/>
      rename qemuDomainDetachSCSIDiskDevice to qemuDomainDetachDiskDevice (Wen Congyang),<br/>
      qemu_hotplug: Reword error if spice password change not available (Cole Robinson),<br/>
      Move event code out of the daemon/ into src/util/ (Daniel P. Berrange),<br/>
      Convert daemon/virsh over to use primary event APIs, rather than impl (Daniel P. Berrange),<br/>
      Cleaning up some of the logging code (Daniel Veillard),<br/>
      qemu: Support vram for video of qxl type (Osier Yang),<br/>
      Add an an internal API for emergency dump of debug buffer (Daniel Veillard),<br/>
      Add logrotate support for libvirtd.log (Daniel Veillard),<br/>
      Change default log policy to libvirtd.log instead of syslog (Daniel Veillard),<br/>
      Force all logs to go to the round robbin memory buffer (Daniel Veillard),<br/>
      AUTHORS: adjust to preferred spelling (KAMEZAWA Hiroyuki),<br/>
      Pass virSecurityManagerPtr to virSecurityDAC{Set, Restore}ChardevCallback (Soren Hansen),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      Attempt to improve an error message (Daniel P. Berrange),<br/>
      add additional event debug points (Daniel P. Berrange),<br/>
      qemu: only request sound cgroup ACL when required (Eric Blake),<br/>
      Add support for multiple serial ports into the Xen driver (Michal Novotny),<br/>
      Add APIs for killing off processes inside a cgroup (Daniel P. Berrange),<br/>
      Allow hash tables to use generic pointers as keys (Daniel P. Berrange),<br/>
      Remove deallocator parameter from hash functions (Daniel P. Berrange),<br/>
      Make commandtest more robust wrt its execution environment (Daniel P. Berrange),<br/>
      audit: audit qemu pci and usb device passthrough (Eric Blake),<br/>
      audit: audit qemu memory and vcpu adjustments (Eric Blake),<br/>
      audit: add qemu hooks for auditing cgroup events (Eric Blake),<br/>
      audit: prepare qemu for listing vm in cgroup audits (Eric Blake),<br/>
      cgroup: determine when skipping non-devices (Eric Blake),<br/>
      virExec: avoid uninitialized memory usage (Eric Blake),<br/>
      Allow 32-on-64 execution for LXC guests (Daniel P. Berrange),<br/>
      Put &lt;stdbool.h&gt; into internal.h so it is available everywhere (Daniel P. Berrange),<br/>
      qemu: Switch over command line capabilities to virBitmap (Jiri Denemark),<br/>
      qemu: Rename qemud\?CmdFlags to qemuCaps (Jiri Denemark),<br/>
      qemu: Use helper functions for handling cmd line capabilities (Jiri Denemark),<br/>
      qemu: Rename QEMUD_CMD_FLAG_* to QEMU_CAPS_* (Jiri Denemark),<br/>
      util: Add API for converting virBitmap into printable string (Jiri Denemark),<br/>
      util: Use unsigned long as a base type for virBitmap (Jiri Denemark),<br/>
      Expose name + UUID to LXC containers via env variables (Daniel P. Berrange),<br/>
      Fix discard of expected errors (Daniel P. Berrange),<br/>
      Fix group/mode for /dev/pts inside LXC container (Daniel P. Berrange),<br/>
      802.1Qbh: Delay IFF_UP'ing interface until migration final stage (Roopa Prabhu),<br/>
      storage: make debug log more useful (Osier Yang),<br/>
      virsh: replace vshPrint with vshPrintExtra for snapshot list Otherwise extra information will be printed even if "--quiet" is specified. (Osier Yang),<br/>
      check device-mapper when building with mpath or disk storage driver (Wen Congyang),<br/>
      build: add dependency on gnutls-utils (Eric Blake),<br/>
      Renamed functions in xenxs (Markus Groß),<br/>
      Moved XM formatting functions to xenxs (Markus Groß),<br/>
      Moved XM parsing functions to xenxs (Markus Groß),<br/>
      Moved SEXPR formatting functions to xenxs (Markus Groß),<br/>
      Moved SEXPR parsing functions to xenxs (Markus Groß),<br/>
      Moved some SEXPR functions from xen-unified (Markus Groß),<br/>
      Moved SEXPR unit to utils (Markus Groß),<br/>
      virt-*-validate.in: quote all variable references (Dan Kenigsberg),<br/>
      virt-pki-validate: behave when CERTTOOL is missing (Dan Kenigsberg),<br/>
      autobuild.sh: use VPATH build (Eric Blake),<br/>
      maint: fix 'make dist' in VPATH build (Eric Blake),<br/>
      build: don't require pod2man for tarball builds (Eric Blake),<br/>
      hash: make virHashFree more free-like (Eric Blake),<br/>
      build: Fix API docs generation in VPATH build (Jiri Denemark),<br/>
      Remove all object hashtable caches from virConnectPtr (Daniel P. Berrange),<br/>
      nwfilter: enable rejection of packets (Stefan Berger),<br/>
      Drop empty argument from dnsmasq call (Guido Günther),<br/>
      esx: Ignore malformed host UUID from BIOS (Matthias Bolte),<br/>
      build: speed up non-maintainer builds (Eric Blake),<br/>
      build: recompute symbols after changing configure options (Eric Blake),<br/>
      Requires gettext for client package (Osier Yang),<br/>
      Do not add drive 'boot=on' param when a kernel is specified (Jim Fehlig),<br/>
      factor common code in virHashAddEntry and virHashUpdateEntry (Christophe Fergeau),<br/>
      add hash table rebalancing in virHashUpdateEntry (Christophe Fergeau),<br/>
      hash: modernize debug code (Eric Blake),<br/>
      build: improve 'make install' for VPATH builds (Eric Blake),<br/>
      check more error info about whether drive_add failed (Wen Congyang),<br/>
      logging: make VIR_ERROR and friends preserve errno (Eric Blake),<br/>
      maint: avoid 'make syntax-check' from tarball (Eric Blake),<br/>
      Give each virtual network bridge its own fixed MAC address (Laine Stump),<br/>
      Allow brAddTap to create a tap device that is down (Laine Stump),<br/>
      Add txmode attribute to interface XML for virtio backend (Laine Stump),<br/>
      Restructure domain struct interface "driver" data for easier expansion (Laine Stump),<br/>
      build: Fix VPATH build (Jiri Denemark),<br/>
      storage: Allow to delete device mapper disk partition (Osier Yang)<br/>
      </li>

      <li>Cleanups:<br/>
      The next release is 0.9.0 not 0.8.9 (Daniel Veillard),<br/>
      maint: use space, not tab, in remote_protocol-structs (Eric Blake),<br/>
      Remove the Open Nebula driver (Daniel P. Berrange),<br/>
      domain_conf: drop unused ref-count in snapshot object (Eric Blake),<br/>
      Update the set of maintainers for the project (Daniel Veillard),<br/>
      Make virDomainObjParseNode() static (Hu Tao),<br/>
      maint: make spacing in .sh files easier (Eric Blake),<br/>
      network driver: Fix indentation from previous commit (Laine Stump),<br/>
      qemu: Rename qemuMonitorCommandWithHandler as qemuMonitorText* (Jiri Denemark),<br/>
      qemu: Rename qemuMonitorCommand{,WithFd} as qemuMonitorHMP* (Jiri Denemark),<br/>
      maint: avoid long lines in more tests (Eric Blake),<br/>
      maint: kill all remaining uses of old DEBUG macro (Eric Blake),<br/>
      maint: Expand tabs in python code (Jiri Denemark),<br/>
      remove space between function name and ( (Christophe Fergeau),<br/>
      don't check for NULL before calling virHashFree (Christophe Fergeau),<br/>
      remove no longer needed calls to virReportOOMError (Christophe Fergeau),<br/>
      Move all the QEMU migration code to a new file (Daniel P. Berrange),<br/>
      Split all QEMU process management code into separate file (Daniel P. Berrange)<br/>
      </li>
    </ul>

    <h3>0.8.8: Feb 17 2011</h3>
    <ul>
      <li>Features:<br/>
      sysinfo: expose new API (Eric Blake),<br/>
      cgroup blkio weight support. (Gui Jianfeng),<br/>
      smartcard device support (Eric Blake),<br/>
      qemu: Support per-device boot ordering (Jiri Denemark)<br/>
      </li>

      <li>Documentation:<br/>
      docs: fix typos (Eric Blake),<br/>
      docs: added link for nimbus to apps page (Justin Clift),<br/>
      Update src/README (Matthias Bolte),<br/>
      docs: Add information about libvirt-php new location (Michal Novotny),<br/>
      Add libvirt-php information page (Michal Novotny),<br/>
      cgroup: Add documentation for blkiotune elements. (Gui Jianfeng),<br/>
      docs/index.html.in: update KVM url (Niels de Vos),<br/>
      docs/index.html.in: update QEMU url (Alon Levy),<br/>
      docs: more on qemu locking patterns (Eric Blake),<br/>
      docs: renamed hudson project link to jenkins, matching project rename (Justin Clift),<br/>
      docs: Update docs for cpu_shares setting (Osier Yang),<br/>
      docs: replace CRLF with LF (Juerg Haefliger),<br/>
      docs: Add docs for new extra parameter pkipath (Osier Yang),<br/>
      docs: expand the man page text for virsh setmaxmem (Justin Clift),<br/>
      docs: fix incorrect XML element mentioned by setmem text (Justin Clift),<br/>
      docs: add a link to the bindings page under the downloads menu item (Justin Clift),<br/>
      docs: document &lt;controller&gt; element (Eric Blake),<br/>
      docs: move the apps page to the top level as its good promo (Justin Clift),<br/>
      docs: added new entries to apps page, plus adjusted a few existing (Justin Clift),<br/>
      docs: document &lt;sysinfo&gt; and &lt;smbios&gt; elements (Eric Blake),<br/>
      datatypes: Fix outdated function names in the documentation (Matthias Bolte),<br/>
      Add documentation for VIR_DOMAIN_MEMORY_PARAM_UNLIMITED (Matthias Bolte),<br/>
      docs: Move the "Network Filtering" page one level up in the hierarchy (Matthias Bolte),<br/>
      docs: add buildbot to the apps page (Justin Clift),<br/>
      docs: add new conversion heading to the apps listing (Justin Clift),<br/>
      docs: updated windows page for new 0.8.7 installer (Justin Clift),<br/>
      docs: clarify virsh setvcpus and setmem usage with active domains (Justin Clift),<br/>
      Document HAP domain feature (Jim Fehlig),<br/>
      docs: fix trivial typos in currentMemory description (Justin Clift),<br/>
      doc: improve the documentation of desturi (Wen Congyang),<br/>
      docs: reorder apps page alphabetically, plus add libguestfs entries (Justin Clift),<br/>
      docs: add entry for archipel to the apps page (Justin Clift),<br/>
      docs: use xml entity encoding for extended character last name (Justin Clift),<br/>
      docs: updated memtune info again in virsh command reference (Justin Clift),<br/>
      docs: updated release of virsh cmd reference, with memtune info (Justin Clift),<br/>
      maint: document dislike of mismatched if/else bracing (Eric Blake),<br/>
      docs: added libvirt-announce to contact page (Justin Clift)<br/>
      </li>

      <li>Portability:<br/>
      qemu: ignore failure of qemu -M ? on older qemu (Eric Blake),<br/>
      virsh: avoid mingw compiler warnings (Eric Blake),<br/>
      build: avoid problems with autogen.sh runs from tarball (Eric Blake),<br/>
      build: fix cygwin strerror_r failure (Eric Blake),<br/>
      Avoid pthread_sigmask on Win32 platforms (Daniel P. Berrange),<br/>
      Fix compilation when building without sasl (Daniel Veillard),<br/>
      build: fix parted detection at configure time (Eric Blake),<br/>
      Fix setup of lib directory with autogen.sh --system (Daniel P. Berrange),<br/>
      build: fix 'make check' with older git (Eric Blake),<br/>
      maint: support --no-git option during autogen.sh (Eric Blake),<br/>
      libvirt-guests: remove bashisms (Laurent Léonard),<br/>
      build: restore mingw build (Eric Blake),<br/>
      commandtest: avoid printing loader-control variables from commandhelper (Diego Elio Pettenò)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: Error prompt when saving a shutoff domain (Osier Yang),<br/>
      cgroup: preserve correct errno on failure (Eric Blake),<br/>
      qemu: Fix command line generation with faked host CPU (Jiri Denemark),<br/>
      tests: Fake host capabilities properly (Jiri Denemark),<br/>
      build: address clang reports about virCommand (Eric Blake),<br/>
      qemu: don't mask real error with oom report (Eric Blake),<br/>
      qemu: avoid NULL derefs (Eric Blake),<br/>
      virDomainMemoryStats: avoid null dereference (Eric Blake),<br/>
      Fix leak of mutex attributes in POSIX threads impl (Daniel P. Berrange),<br/>
      Fix leak in SCSI storage backend (Daniel P. Berrange),<br/>
      storage: Create enough volumes for mpath pool (Osier Yang),<br/>
      qemu: avoid NULL deref on error (Eric Blake),<br/>
      conf: Fix XML generation for smartcards (Jiri Denemark),<br/>
      Fix cleanup on VM state after failed QEMU startup (Daniel P. Berrange),<br/>
      libvirt-qemu: Fix enum type declaration (Jiri Denemark),<br/>
      xen: Prevent updating device when attaching a device (Osier Yang),<br/>
      qemu: Fix escape_monitor(escape_shell(command)) (Philipp Hahn),<br/>
      qemu: fix attach-interface regression (Wen Congyang),<br/>
      Fix typo in parsing of spice 'auth' data (Michal Privoznik),<br/>
      Reset logging filter function when forking (Daniel P. Berrange),<br/>
      Block SIGPIPE around virExec hook functions (Daniel P. Berrange),<br/>
      Only initialize/cleanup libpciaccess once (Daniel P. Berrange),<br/>
      macvtap: fix 2 nla_put expressions (non-serious bug) (Stefan Berger),<br/>
      qemu: avoid double shutdown (Eric Blake),<br/>
      Fix conflicts with glibc globals (Davidlohr Bueso),<br/>
      qemuBuildDeviceAddressStr() checks for QEMUD_CMD_FLAG_PCI_MULTIBUS (Niels de Vos),<br/>
      Don't sleep in poll() if there is existing SASL decoded data (Daniel P. Berrange),<br/>
      Initialization error of controller in QEmu SCSI hotplug (Wen Congyang),<br/>
      esx: Ensure max-memory has 4 megabyte granularity (Matthias Bolte),<br/>
      Remove double close of qemu monitor (Daniel P. Berrange),<br/>
      Prevent overfilling of self-pipe in python event loop (Daniel P. Berrange),<br/>
      avoid vm to be deleted if qemuConnectMonitor failed (Wen Congyang),<br/>
      tests: Fix virtio channel tests (Jiri Denemark),<br/>
      event: fix event-handling allocation crash (Eric Blake),<br/>
      storage: Round up capacity for LVM volume creation (Osier Yang),<br/>
      Do not use virtio-serial port 0 for generic ports (David Allan),<br/>
      Manually kill gzip if restore fails before starting qemu (Laine Stump),<br/>
      Set SELinux context label of pipes used for qemu migration (Laine Stump),<br/>
      virsh: require --mac to avoid detach-interface ambiguity (Michal Privoznik),<br/>
      dispatch error before return (Wen Congyang),<br/>
      event: fix event-handling data race (Eric Blake),<br/>
      qemu: Retry JSON monitor cont cmd on MigrationExpected error (Jim Fehlig),<br/>
      Fix startup with VNC password expiry on old QEMU (Daniel P. Berrange),<br/>
      Fix error reporting when machine type probe fails (Daniel P. Berrange),<br/>
      Avoid crash in security driver if model is NULL (Daniel P. Berrange),<br/>
      qemu: Fix a possible deadlock in p2p migration (Wen Congyang),<br/>
      qemu: Avoid sending STOPPED event twice (Jiri Denemark),<br/>
      spec: Start libvirt-guests only if it's on in current runlevel (Jiri Denemark),<br/>
      Increase size of driver table to make UML work again (Daniel P. Berrange),<br/>
      qemu: don't fail capabilities check on 0.12.x (Eric Blake),<br/>
      Fix 'make check' after commit 04197350 (Jim Fehlig),<br/>
      esx: Fix memory leak in HostSystem managed object free function (Matthias Bolte),<br/>
      qemu: Watchdog IB700 is not a PCI device (RHBZ#667091). (Richard W.M. Jones),<br/>
      cpu: plug memory leak (Eric Blake),<br/>
      network: plug memory leak (Eric Blake),<br/>
      network: plug unininitialized read found by valgrind (Eric Blake),<br/>
      remote: Don't lose track of events when callbacks are slow (Cole Robinson),<br/>
      conf: Report error if invalid type specified for character device (Osier Yang),<br/>
      daemon: Fix core dumps if unix_sock_group is set (Jiri Denemark),<br/>
      vbox: Use correct VRAM size unit (Matthias Bolte),<br/>
      bridge: Fix generation of dnsmasq's --dhcp-hostsfile option (Kay Schubert),<br/>
      qemu: Fix bogus warning about uninitialized saveptr (Jiri Denemark),<br/>
      Don't chown qemu saved image back to root after save if dynamic_ownership=0 (Laine Stump)<br/>
      </li>

      <li>Improvements:<br/>
      maint: delete unused 'make install' step (Eric Blake),<br/>
      Update czech localization (Zdenek Styblik),<br/>
      Avoid empty strings when --with-packager(-version) is not specified (Matthias Bolte),<br/>
      Output commandline on status != 0 in virCommandWait (Matthias Bolte),<br/>
      add missing error handling to virGetDomain (Christophe Fergeau),<br/>
      call virReportOOMError when appropriate in hash.c (Christophe Fergeau),<br/>
      xml: avoid compiler warning (Eric Blake),<br/>
      nwfilter: reorder match extensions relative to state match (Stefan Berger),<br/>
      fix OOM handling in hash routines (Christophe Fergeau),<br/>
      docs: Distribute XSLT files to generate HACKING (Matthias Bolte),<br/>
      qemu: Report a more informative error for missing cgroup controllers (Matthias Bolte),<br/>
      Imprint all logs with version + package build information (Daniel P. Berrange),<br/>
      Reduce log level when cgroups aren't mounted (Daniel P. Berrange),<br/>
      Avoid warnings from nwfilter driver when run non-root (Daniel P. Berrange),<br/>
      build: distribute 'make syntax-check' tweaks (Eric Blake),<br/>
      Adjust some log levels in udev driver (Daniel P. Berrange),<br/>
      Add check for binary existing in machine type probe (Daniel P. Berrange),<br/>
      Add a little more debugging for async events (Daniel P. Berrange),<br/>
      Move connection driver modules directory (Daniel P. Berrange),<br/>
      Support SCSI RAID type &amp; lower log level for unknown types (Daniel P. Berrange),<br/>
      Don't use CLONE_NEWUSER for now (Serge E. Hallyn),<br/>
      sysinfo: implement qemu support (Eric Blake),<br/>
      sysinfo: refactor xml formatting (Eric Blake),<br/>
      sysinfo: implement virsh support (Eric Blake),<br/>
      sysinfo: implement the remote protocol (Eric Blake),<br/>
      sysinfo: implement the public API (Eric Blake),<br/>
      sysinfo: define internal driver API (Eric Blake),<br/>
      LXC: LXC Blkio weight configuration support. (Gui Jianfeng),<br/>
      qemu: Implement blkio tunable XML configuration and parsing. (Gui Jianfeng),<br/>
      cgroup: Update XML Schema for new entries. (Gui Jianfeng),<br/>
      cgroup: Implement blkio.weight tuning API. (Gui Jianfeng),<br/>
      cgroup: Enable cgroup hierarchy for blkio cgroup (Gui Jianfeng),<br/>
      Update Dutch and Polish localizations (Daniel Veillard),<br/>
      Vietnamese translations for libvirt (Hero Phương),<br/>
      spicevmc: support older -device spicevmc of qemu 0.13.0 (Eric Blake),<br/>
      smartcard: add spicevmc support (Eric Blake),<br/>
      spicevmc: support new qemu chardev (Daniel P. Berrange),<br/>
      smartcard: turn on qemu support (Eric Blake),<br/>
      smartcard: enable SELinux support (Eric Blake),<br/>
      smartcard: check for qemu capability (Eric Blake),<br/>
      smartcard: add domain conf support (Eric Blake),<br/>
      smartcard: add XML support for &lt;smartcard&gt; device (Eric Blake),<br/>
      qemu: Support booting from hostdev PCI devices (Jiri Denemark),<br/>
      Support booting from hostdev devices (Jiri Denemark),<br/>
      qemu: Add shortcut for HMP pass through (Jiri Denemark),<br/>
      macvtap: fix variable in debugging output (Stefan Berger),<br/>
      qemu: Build command line for incoming tunneled	migration (Osier Yang),<br/>
      bridge_driver: handle DNS over IPv6 (Paweł Krześniak),<br/>
      tests: handle backspace-newline pairs in test input files (Juerg Haefliger),<br/>
      qemu: More clear error parsing domain def failure of tunneled migration (Osier Yang),<br/>
      maint: reject raw close, popen in 'make syntax-check' (Eric Blake),<br/>
      build: avoid close, system (Eric Blake),<br/>
      Add VIR_DIV_UP to divide memory or storage request sizes with round up (Matthias Bolte),<br/>
      qemu: fix augeas support for vnc_auto_unix_socket (Eric Blake),<br/>
      virsh: added --all flag to freecell command (Michal Privoznik),<br/>
      esx: Don't try to change max-memory of an active domain (Matthias Bolte),<br/>
      qemu aio: enable support (Eric Blake),<br/>
      qemu aio: parse aio support from qemu -help (Matthias Dahl),<br/>
      qemu aio: add XML parsing (Matthias Dahl),<br/>
      Remove bogus log warning lines when launching QEMU (Daniel P. Berrange),<br/>
      qemu: fix error messages (Eric Blake),<br/>
      qemu: Report more accurate error on failure to attach device. (Hu Tao),<br/>
      Force guest suspend at timeout (Wen Congyang),<br/>
      Show migration progress. (Wen Congyang),<br/>
      Cancel migration if user presses Ctrl-C when migration is in progress (Hu Tao),<br/>
      qemu: use separate alias for chardev and associated device (Eric Blake),<br/>
      remote: Add extra parameter pkipath for URI (Osier Yang),<br/>
      Update localization files from Fedora i10n (Daniel Veillard),<br/>
      Add check for poll error events in monitor (Daniel P. Berrange),<br/>
      Filter out certain expected error messages from libvirtd (Daniel P. Berrange),<br/>
      Add a function to the security driver API that sets the label of an open fd. (Laine Stump),<br/>
      qemu: Error prompt when managed save a shutoff domain (Osier Yang),<br/>
      build: avoid corrupted gnulib/tests/Makefile (Eric Blake),<br/>
      qemu: sound: Support intel 'ich6' model (Cole Robinson),<br/>
      vmx: Use VIR_ERR_CONFIG_UNSUPPORTED when appropriated (Matthias Bolte),<br/>
      Push unapplied fixups for previous patch (Cole Robinson),<br/>
      qemu: Add conf option to auto setup VNC unix sockets (Cole Robinson),<br/>
      qemu: Allow serving VNC over a unix domain socket (Cole Robinson),<br/>
      qemu: Set domain def transient at beginning of startup process (Cole Robinson),<br/>
      qemu: report more proper error for unsupported graphics (Osier Yang),<br/>
      qemu: Fail if per-device boot is used but deviceboot is not supported (Jiri Denemark),<br/>
      Turn libvirt.c error reporting functions into macros (Daniel P. Berrange),<br/>
      build: use more gnulib modules for simpler code (Eric Blake),<br/>
      Remove two unused PATH_MAX-sized char arrays from the stack (Matthias Bolte),<br/>
      Use VIR_ERR_OPERATION_INVALID when appropriated (Matthias Bolte),<br/>
      Fix misuse of VIR_ERR_INVALID_* error code (Matthias Bolte),<br/>
      Simplify "NWFilterPool" to "NWFilter" (Matthias Bolte),<br/>
      datatypes: Get virSecretFreeName in sync with the other free functions (Matthias Bolte),<br/>
      qemu: use -incoming fd:n to avoid qemu holding fd indefinitely (Eric Blake),<br/>
      tests: Add tests for per-device boot elements (Jiri Denemark),<br/>
      Introduce per-device boot element (Jiri Denemark),<br/>
      conf: Move boot parsing into a separate function (Jiri Denemark),<br/>
      build: let xgettext see strings in libvirt-guests (Eric Blake),<br/>
      A couple of fixes for the search PHP code (Daniel Veillard),<br/>
      virsh: Use WITH_SECDRIVER_APPARMOR to detect AppArmor support (Matthias Bolte),<br/>
      memtune: Let virsh know the unlimited value for memory tunables (Nikunj A. Dadhania),<br/>
      maint: improve sc_prohibit_strncmp syntax check (Eric Blake),<br/>
      Enable tuning of qemu network tap device "sndbuf" size (Laine Stump),<br/>
      Add XML config switch to enable/disable vhost-net support (Laine Stump),<br/>
      Use the new set_password monitor command to set password. (Marc-André Lureau),<br/>
      qemu: add set_password and expire_password monitor commands (Marc-André Lureau),<br/>
      qemu: move monitor device out of domain_conf common code (Eric Blake),<br/>
      domain_conf: split source data out from ChrDef (Eric Blake),<br/>
      cpu: Add support for Westmere CPU model (Jiri Denemark),<br/>
      qemu: improve device flag parsing (Eric Blake),<br/>
      util: add missing string-&gt;integer conversion functions (Eric Blake),<br/>
      qemu: convert capabilities to use virCommand (Eric Blake),<br/>
      virsh: ensure --maximum flag used only with --config for setvcpus (Justin Clift),<br/>
      Add HAP to xen hypervisor capabilities (Jim Fehlig),<br/>
      Add support for HAP feature to xen drivers (Jim Fehlig),<br/>
      Add HAP to virDomainFeature enum (Jim Fehlig),<br/>
      tests: virsh is no longer in builddir/src (Eric Blake),<br/>
      virFindFileInPath: only find executable non-directory (Eric Blake),<br/>
      Fix old PHP syntax in the search online form (Daniel Veillard),<br/>
      report error when specifying wrong desturi (Wen Congyang),<br/>
      qemu: Reject SDL graphic if it's not supported by qemu (Osier Yang),<br/>
      vbox: Silently ignore missing registry key on Windows (Matthias Bolte),<br/>
      python: Use PyCapsule API if available (Cole Robinson),<br/>
      event-test: Simplify debug on/off (Cole Robinson),<br/>
      Refactor the security drivers to simplify usage (Daniel P. Berrange),<br/>
      Add AM_MAINTAINER_MODE (Guido Günther),<br/>
      esx: Move occurrence check into esxVI_LookupObjectContentByType (Matthias Bolte),<br/>
      esx: Add domain autostart support (Matthias Bolte),<br/>
      vmx: Add support for video device VRAM size (Matthias Bolte),<br/>
      API: Improve log for domain related APIs (Osier Yang),<br/>
      schema: tighten &lt;serial&gt;&lt;protocol type=...&gt; relaxNG (Eric Blake),<br/>
      Log an error on attempts to add a NAT rule for non-IPv4 addresses (Laine Stump),<br/>
      Improve error reporting when parsing dhcp info for virtual networks (Laine Stump),<br/>
      qemu driver: fix positioning to end of log file (Stefan Berger),<br/>
      build: satisfy 'make syntax-check' regarding year change (Eric Blake)<br/>
      </li>

      <li>Cleanups:<br/>
      build: silence some clang warnings (Eric Blake),<br/>
      maint: kill dead assignments (Eric Blake),<br/>
      build: silence false positive clang report (Eric Blake),<br/>
      maint: whitespace cleanup (Eric Blake),<br/>
      maint: update AUTHORS (Eric Blake),<br/>
      Prefer C style comments over C++ ones (Matthias Bolte),<br/>
      Revert all previous error log priority hacks (Daniel P. Berrange),<br/>
      Cleanup code style in logging APIs (Daniel P. Berrange),<br/>
      Remove redundant brackets around return values (Daniel P. Berrange),<br/>
      tests: Remove obsolete secaatest (Matthias Bolte),<br/>
      datatypes: avoid redundant __FUNCTION__ (Eric Blake)<br/>
      </li>
    </ul>

    <h3>0.8.7: Jan 04 2011</h3>
    <ul>
      <li>Features:<br/>
      Preliminary support for VirtualBox 4.0 (Matthias Bolte),<br/>
      IPv6 support (Laine Stump),<br/>
      Add VMware Workstation and Player driver (Jean-Baptiste Rouault),<br/>
      Add network disk support (MORITA Kazutaka and Josh Durgin)<br/>
      </li>

      <li>Documentation:<br/>
      esx: Fix "occurence" typo (again) (Matthias Bolte),<br/>
      update docs for network disks (MORITA Kazutaka),<br/>
      docs: Make VMware Workstation / Player page appear in the menu (Matthias Bolte),<br/>
      Add info about VMware driver to the libvirt website (Jean-Baptiste Rouault),<br/>
      docs: fixed typo, added table of contents (Justin Clift),<br/>
      docs: added compiling page and significantly expanded windows page (Justin Clift),<br/>
      docs: Add additional indentation to level 3 menu items (Matthias Bolte),<br/>
      maint: doc fix (Eric Blake),<br/>
      Update documentation of watchdog dump option and add test data for it (Hu Tao),<br/>
      virsh: fix a typo in the memtune help description (Justin Clift),<br/>
      docs: updated virsh command reference download links to new version (Justin Clift),<br/>
      Moved the nodeinfo command to the 'host' help keyword group (Justin Clift),<br/>
      man pages: update the description for the virsh help command (Justin Clift),<br/>
      virsh: move two commands from domain group to storage pool group (Osier Yang),<br/>
      virCommand: docs for usage of new command APIs (Daniel P. Berrange),<br/>
      virsh: update help for "virsh help help" (Osier Yang),<br/>
      virsh: remove a badly placed line break in virsh -h output (Justin Clift),<br/>
      virsh: Categorize commands into groups for virsh help (Osier Yang)<br/>
      </li>

      <li>Portability:<br/>
      vbox: Handle different IID representation in Version 2.2 on Windows (Matthias Bolte),<br/>
      build: make building on cygwin easier (Eric Blake),<br/>
      build: improve testsuite results with older automake (Eric Blake),<br/>
      build: allow older libselinux again (Eric Blake),<br/>
      build: allow autoconf 2.59 again (Eric Blake),<br/>
      build: allow mingw compilation with virCommand (Eric Blake),<br/>
      build: quote AC_LANG_PROGRAM to avoid warnings with autoconf 2.68 (Diego Elio Pettenò),<br/>
      build: properly handle ./configure --with-libpcap (Diego Elio Pettenò),<br/>
      build: avoid shadowing devname() on BSD systems (Eric Blake)<br/>
      Fix undefined symbol errors when macvtap support is disabled (Matthias Bolte),<br/>
      Fix warning when macvtap support is disabled (Jean-Baptiste Rouault)<br/>
      </li>

      <li>Bug Fixes:<br/>
      virExec: fix logic bug (Eric Blake),<br/>
      Set broadcast address for IPv4 addresses on virtual network bridges (Laine Stump),<br/>
      Fix misuse of VIR_ERR_INVALID_DOMAIN (Matthias Bolte),<br/>
      build: fix building error when building without libvirtd (Wen Congyang),<br/>
      spec: Enable ESX driver on RHEL (Jiri Denemark),<br/>
      bridge: Fix uninitialized variable (Jiri Denemark),<br/>
      make the dhcp element optional in network.rng (Laine Stump),<br/>
      fix syntax error in configure.ac (Wen Congyang),<br/>
      qemu: Reparent children when deleting a snapshot (Matthias Bolte),<br/>
      Set bitmap size when allocating a bitmap (Jim Fehlig),<br/>
      qemu: Return SPICE ports on domain shutdown (Jiri Denemark),<br/>
      virterror: avoid API breakage with vmware (Eric Blake),<br/>
      Fix memory leak in virsh (Hu Tao),<br/>
      Distribute libvirt_vmx.syms (Matthias Bolte),<br/>
      vmware: Fix undefine symbol with loadable drivers enabled (Matthias Bolte),<br/>
      esx: Fix cluster resource lookup when connecting to a vCenter (Matthias Bolte),<br/>
      command: avoid hanging on daemon processes (Eric Blake),<br/>
      storage: Ignore dangling symbolic link for filesystem pool (Osier Yang),<br/>
      Skip file-based security checks for network disks (Josh Durgin),<br/>
      tests: avoid data race (Eric Blake),<br/>
      bridge_driver: avoid double call to VIR_FREE (Paweł Krześniak),<br/>
      vbox: Don't leak domain names in vboxListDefinedDomains (Matthias Bolte),<br/>
      vbox: Don't leak arrays from XPCOM (Matthias Bolte),<br/>
      build: fix typo that broke 'make dist' (Eric Blake),<br/>
      util: Fix logical error in virReportSystemErrorFull (Jiri Denemark),<br/>
      util: Fix error message in __virExec (Jiri Denemark),<br/>
      daemon: Change CWD to / before daemonizing (Jiri Denemark),<br/>
      daemon, threads: plug a memory leak (Eric Blake),<br/>
      daemon: plug a memory leak (Eric Blake),<br/>
      conf: plug memory leaks (Eric Blake),<br/>
      tests: plug memory leaks (Eric Blake),<br/>
      virExec: avoid undefined behavior (Eric Blake),<br/>
      command: plug memory leak (Eric Blake),<br/>
      build: distribute commandtest files (Eric Blake),<br/>
      spec: do not start libvirt-guests if that service is off (Dan Kenigsberg),<br/>
      correct the signal's name (Wen Congyang),<br/>
      command: avoid memory leak (Eric Blake),<br/>
      qemu: call drive_del in DetachPciDiskDevice (Ryan Harper),<br/>
      qemu: call drive_unplug in DetachPciDiskDevice (Ryan Harper),<br/>
      qemud: fix memory leak in io error events (Anthony Liguori),<br/>
      qemu: Enable disabled debug messages (Jiri Denemark),<br/>
      qemu: Use -vga none only if it is supported (Jiri Denemark),<br/>
      openvz: avoid potential buffer overflow (Eric Blake),<br/>
      tests: fix leaks in commandtest (Eric Blake),<br/>
      uuid: require smbios uuid and domain uuid to match (Eric Blake),<br/>
      qemu: avoid adding "" in smbios arguments (Eric Blake),<br/>
      Fix funny off-by-one error in clock-variable (Dan Kenigsberg),<br/>
      syntax error "Bad fd number" when stopping libvirt-guests (Laurent Léonard),<br/>
      util: Fix bug which will cause libvirtd crash (Osier Yang),<br/>
      qemu: Fix a possible deadlock in p2p migration (Jiri Denemark),<br/>
      qemu: Don't try to set input FD to -1 (Matthias Bolte),<br/>
      Fix memory leak in logging setup (Daniel P. Berrange),<br/>
      schemas: Fix cpu element schema (Jiri Denemark),<br/>
      virsh: Remove using phy as default disk driver in cmdAttachDisk (Osier Yang),<br/>
      OpenVZ: drop fd leackage (Guido Günther),<br/>
      qemu: plug memory leak (Eric Blake),<br/>
      libvirtd: avoid memory leak on shutdown (Eric Blake),<br/>
      Fix flaw in thread creation APIs (Daniel P. Berrange)<br/>
      </li>

      <li>Improvements:<br/>
      build: avoid compilation warnings (Eric Blake),<br/>
      Improve virSocketAddrMask[ByPrefix] API (Laine Stump),<br/>
      Utility functions to produce an IPv4 broadcast address (Laine Stump),<br/>
      qemu: add -incoming fd:n capability checking (Eric Blake),<br/>
      spec: Automatically turn on cgconfig service (Daniel P. Berrange),<br/>
      Replace setuid/setgid/initgroups with virSetUIDGID() (Laine Stump)<br/>
      new virSetUIDGID() utility function (Laine Stump)<br/>
      Preserve errno across calls to error reporting functions &amp; VIR_FREE (Laine Stump),<br/>
      Run radvd for virtual networks with IPv6 addresses (Laine Stump),<br/>
      Turn on IPv6 support in the bridge_driver.c virtual network driver (Laine Stump),<br/>
      Update iptables.c to also support ip6tables. (Laine Stump),<br/>
      Support multiple IP addresses on one network in bridge_driver.c (Laine Stump),<br/>
      Change virtual network XML parsing/formatting to support IPv6 (Laine Stump),<br/>
      Replace brSetInetAddress/brSetInetNetmask with brAddInetAddress (Laine Stump),<br/>
      Make virtual network netmasks optional (Laine Stump),<br/>
      Pass prefix rather than netmask into iptables functions (Laine Stump),<br/>
      Consistently return 0 on success, -1 on failure in bridge_driver.c (Laine Stump),<br/>
      Fix logging of failed iptables commands (Laine Stump),<br/>
      New virNetworkDef utility functions (Laine Stump),<br/>
      New virSocketAddr utility functions (Laine Stump),<br/>
      virsh: Add --force option to update-device (Jiri Denemark),<br/>
      esx: Add support for storage volume wiping (Matthias Bolte),<br/>
      esx: Add support for storage volume deletion (Matthias Bolte),<br/>
      maint: avoid space-tab (Eric Blake),<br/>
      build: skip vmware driver when building for RHEL (Eric Blake),<br/>
      tests: avoid spurious failure of nodeinfotest (Eric Blake),<br/>
      libvirt-guests: avoid sourcing failure (Eric Blake),<br/>
      vbox: Handle different array representations of XPCOM and MSCOM (Matthias Bolte),<br/>
      vbox: Add glue layer for MSCOM on Windows (Matthias Bolte),<br/>
      vbox: Match struct layout of the MSCOM implementation on Windows (Matthias Bolte),<br/>
      vbox: Use stdcall convention for all COM methods on Windows (Matthias Bolte),<br/>
      maint: improve tests distribution (Eric Blake),<br/>
      Update QEMU test cases for new file locations &amp; API renames (Daniel P. Berrange),<br/>
      Move QEMU hotplug helper code out of the QEMU driver (Daniel P. Berrange),<br/>
      Move QEMU domain lock / job helper code to separate file (Daniel P. Berrange),<br/>
      Move QEMU driver lock helpers to a separate file (Daniel P. Berrange),<br/>
      Move QEMU hostdev helper code out of the QEMU driver (Daniel P. Berrange),<br/>
      Move QEMU cgroup helper code out of the QEMU driver (Daniel P. Berrange),<br/>
      Move QEMU audit helper code out of the QEMU driver (Daniel P. Berrange),<br/>
      Move QEMU private data &amp; namespace code into separate file (Daniel P. Berrange),<br/>
      Move QEMU command line management into a separate file (Daniel P. Berrange),<br/>
      Move QEMU capabilities management into a separate file (Daniel P. Berrange),<br/>
      Add a new function doStartCPUs (Hu Tao),<br/>
      Add a new function doStopCPUs (Hu Tao),<br/>
      Add a macro timeval_to_ms to compute micro seconds from timeval (Hu Tao),<br/>
      cpu: Unify CPUID data structures (Jiri Denemark),<br/>
      esx: Add support for storage volume cloning (Matthias Bolte),<br/>
      selinux: avoid memory overhead of matchpathcon (Eric Blake),<br/>
      tests: test Fedora 14 qemu-kvm -help parsing (Eric Blake),<br/>
      tests: test RHEL 6.0 qemu-kvm -help parsing (Eric Blake),<br/>
      sysinfo: convert to virCommand (Eric Blake),<br/>
      build: update gnulib for pipe on mingw (Eric Blake),<br/>
      test: fix commandtest under autobuild.sh (Eric Blake),<br/>
      qemu: Introduce two new job types (Osier Yang),<br/>
      qemu: Add RBD support and some network disk fixes (Josh Durgin),<br/>
      Missing "Default-Stop" field in LSB comment in libvirt-guests (Laurent Léonard),<br/>
      802.1Qbh: Add support for IFLA_VF_MAC (Roopa Prabhu),<br/>
      command: ease use with virBuffer, and fix qemu leak (Eric Blake),<br/>
      Convert dhcpStartDhcpDaemon from virRun to virCommand (Laine Stump),<br/>
      esx: Refactor storage pool type lookup into a function (Matthias Bolte),<br/>
      esx: Improve error reporting for failed tasks (Matthias Bolte),<br/>
      tests: Add tests for network disks (Josh Durgin),<br/>
      Add a watchdog action `dump' (Hu Tao),<br/>
      Add a new function doCoreDump (Hu Tao),<br/>
      threadpool impl (Hu Tao),<br/>
      qemu: Distinguish between domain shutdown and crash (Jiri Denemark),<br/>
      qemu: Only build devstr when needs (attach PCI controller) (Osier Yang)<br/>
      configure: improve misleading libnl missing error message (Justin Clift),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      openvz: convert popen to virCommand (Eric Blake),<br/>
      command: improve behavior on no output (Eric Blake),<br/>
      command: enforce fd vs. buffer considerations (Eric Blake),<br/>
      tests: Fix commandtest in VPATH build (Jiri Denemark),<br/>
      command: improve allocation failure reporting (Eric Blake),<br/>
      tests: Fix detection of expected error (Jiri Denemark),<br/>
      tests: Fix code formating in commandtest (Jiri Denemark),<br/>
      smbios: allow () in smbios strings (Eric Blake)<br/>
      smbios: support system family (Eric Blake),<br/>
      threads: add virThreadID for debugging use (Eric Blake),<br/>
      tests: Don't ignore return value of getcwd(), (Jiri Denemark),<br/>
      build: Fix internal docs generation in VPATH builds (Jiri Denemark),<br/>
      Change return value of VIR_DRV_SUPPORTS_FEATURE to bool (Jiri Denemark),<br/>
      Implement virVMOperationType{To|From}String independent from WITH_MACVTAP (Matthias Bolte),<br/>
      Create file in virFileWriteStr() if it doesn't exist (Jean-Baptiste Rouault)<br/>
      Remove bogus includes (Daniel P. Berrange),<br/>
      uml: convert to virCommand (Daniel P. Berrange),<br/>
      qemu: convert to virCommand (Eric Blake),<br/>
      Port hooks and iptables code to new command execution APIs (Daniel P. Berrange),<br/>
      Introduce new APIs for spawning processes (Daniel P. Berrange),<br/>
      util: add virVasprintf (Eric Blake),<br/>
      util: fix saferead type (Eric Blake),<br/>
      Tweak daemon event debug to include errno (Daniel P. Berrange),<br/>
      tests: Add tests for CPU selection in qemu driver (Jiri Denemark),<br/>
      tests: Support for faking emulator in qemuxml2argv (Jiri Denemark),<br/>
      maint: update .gitignore (Eric Blake),<br/>
      qemu: Use macro for max and min vnc port instead of number (Osier Yang),<br/>
      tests: Add unit tests for internal CPU APIs (Jiri Denemark),<br/>
      cpu: Add support for overriding path to CPU map XML file (Jiri Denemark),<br/>
      Fall back to QEMUD_SAVE_FORMAT_RAW if compression method fails. (Hu Tao)<br/>
      </li>

      <li>Cleanups:<br/>
      esx: Move VMX handling code out of the driver directory (Matthias Bolte),<br/>
      qemu: use virAsprintf instead of PATH_MAX (Eric Blake),<br/>
      build: fix typo that broke 'make dist' (Wen Congyang),<br/>
      sysinfo: formatting cleanups (Eric Blake),<br/>
      virsh: Remove redundant commands in group domain (Osier Yang),<br/>
      virsh: Remove redundant optional option for cmdHelp (Osier Yang),<br/>
      qemu: Fix typo in qemuTeardownDiskPathDeny (Osier Yang),<br/>
      maint: allow 'make syntax-check' to run again (Eric Blake)<br/>
      </li>
    </ul>

  </body>
</html>
