# Releases (2011)

Here is the list of official releases made during the year 2011. A similar list for 2010 is also available.

It is also possible to just use the GIT version or snapshot, contact the mailing list and check the GIT log to gauge progress.

### 0.9.8: Dec 08 2011

- Features:
  Add support for QEMU 1.0 (Jiri Denemark),
  Add first parts of PPC cpu driver. (Prerna Saxena),
  Add new API virDomain{Set, Get}BlockIoTune (Lei Li),
  block_resize: Define the new API (Osier Yang),
  Add a public API to invoke suspend/resume on the host (Srivatsa S. Bhat),
  Various improvements for LXC containers (Daniel P. Berrange),
  Define keepalive protocol and add virConnectIsAlive API (Jiri Denemark),
  Add support for STP and VLANfiltering (Stefan Berger)
- Documentation:
  Add documentation for <disk><source type="dir"> (Christophe Fergeau),
  Fix typo in virDomainResume API doc (Christophe Fergeau),
  maint: fix improper use of 'an' (Eric Blake),
  virsh: translate net-info help (Eric Blake),
  maint: typo fixes (Eric Blake),
  virsh: Fix typos in man page (Jiri Denemark),
  rpc: Fix a typo in virNetClientSendNonBlock documentation (Jiri Denemark),
  docs: fix grammar of capabilities (Eric Blake),
  Documentation about chains' priorities, lists of elements etc. (Stefan Berger)
- Portability:
  spec: don't use chkconfig --list (Eric Blake),
  build: fix build with older libxml2 (Eric Blake),
  Conditionalize daemonPath decl for Win32 which lacks UNIX sockets (Daniel P. Berrange),
  build: reduce warnings from older gcc (Eric Blake),
  Fix incorrect symbols for virtime.h module breaking Mingw32 (Daniel P. Berrange),
  build: fix build on Cygwin (Eric Blake),
  build: fix build at -O2 on rawhide (Eric Blake),
  Fix build for platforms lacking struct ifreq (Daniel P. Berrange),
  build: fix 'make dist' without dtrace (Eric Blake),
  Don't use undocumented __isleap macro (Daniel P. Berrange),
  virnetsocket: pass XAUTORITY for ssh connection (Christian Franke),
  Fix build on Mingw32 wrt export of virNetServerGetDBusConn (Daniel P. Berrange),
  build: fix compile error with no macvtap (Eric Blake),
  Fix build with polkit0 (Jim Fehlig),
  Fix strchr call triggering gcc 4.3 & 4.4 bug (Stefan Berger),
  PATCH: Fix build without MACVTAP (Michael Wood),
  util: fix compile error on debian (Eli Qiao),
  Disable numactl on ARM architectures too (Daniel P. Berrange),
  Add libvirt confdir to files section in mingw32 spec (Daniel P. Berrange),
  build: fix mingw build of gnulib openpty (Eric Blake)
- Bug Fixes:
  Fix updating of haveTheBuck in RPC client to be race-free (Daniel P. Berrange),
  Prevent crash of libvirtd when attaching to existing qemu process (Jim Fehlig),
  qemu: Ignore shutdown event from destroyed domain (Jiri Denemark),
  remote_driver: don't fail if keepalive check fails (Guido Günther),
  command: handle empty buffer argument correctly (Eric Blake),
  client: Check if other thread claims it has the buck before claiming it. (Peter Krempa),
  Avoid crash in shunloadtest (Daniel P. Berrange),
  Fix a logic error for setting block I/O (Lei Li),
  virsh: Allow other escape characters for console (Michal Privoznik),
  bridge_driver: Don't define network if XML contains more IPv4 addresses. (Peter Krempa),
  virsh: Fix possible deadlock when virsh is about to exit (Jiri Denemark),
  util: Plug memory leak on virNetDevMacVLanCreateWithVPortProfile() error path (Alex Jia),
  util: Plug memory leak on virNetDevBridgeGet() successful path (Alex Jia),
  uml: Plug memory leak on umlStartVMDaemon() error path (Alex Jia),
  rpc: Plug memory leak on virNetClientSendInternal() error path (Alex Jia),
  conf: Plug memory leak on virDomainDefParseXML() error path (Alex Jia),
  qemu: Plug memory leak onqemuProcessWaitForMonitor() error path (Alex Jia),
  conf: reject duplicate paths in device weights (Eric Blake),
  Make logging async signal safe wrt time stamp generation (Daniel P. Berrange),
  Don't mark suspend as active until we know it is running (Daniel P. Berrange),
  util: avoid null deref on qcowXGetBackingStore (Alex Jia),
  virsh: correct return value error (Alex Jia),
  qemu: fix blkiotune --live --config (Eric Blake),
  lxc: Fix suspend/resume with freezer cgroup (Jiri Denemark),
  rpc: Really send non-blocking calls while waiting for another call (Jiri Denemark),
  util: fix thinko in runIO (Paolo Bonzini),
  storage: Skip socket and fifo on pool-start (Michal Privoznik),
  conf: Don't drop console definition on domain restart (Michal Privoznik),
  qemu: Avoid dereference of NULL pointer (Peter Krempa),
  nwfilter: Initialize virNWFilterAddIpAddrForIfname return variable (Michal Privoznik),
  Fix disabling of virtual port profile code on old hosts (Daniel P. Berrange),
  Fix uninitialized variable in NWfilter IP learning code (Daniel P. Berrange),
  storage: Fallback to use lvchange first if lvremove fails (Chang Liu),
  conf: don't modify cpu set string during parsing (Eric Blake),
  qemu: don't release network actual device twice (Roopa Prabhu),
  tests: avoid xend ABRT crash report (Eric Blake),
  Fix use of uninitialized variable in QEMU driver (Daniel P. Berrange),
  snapshot: refuse to generate names for non-regular backing files (Eric Blake),
  fix a bug in remoteSerializeTypedParameters (Hu Tao),
  Don't return a fatal error if receiving unexpected stream data (Daniel P. Berrange),
  Fix handling of stream EOF (Daniel P. Berrange),
  storage: forbid rebuilding existing disk storage pools (Guido Günther),
  qemu: fix domjobabort regression (Eric Blake),
  fix two bugs in bridge_driver.c (Hu Tao),
  nwfilter: avoid failure with noexec /tmp (Eric Blake),
  lxc: free error object to avoid memory leak (Alex Jia),
  lxc: free 'ttyFDs' array on return from lxcVmStart (Alex Jia)
- Improvements:
  npiv: Expose fabric_name outside (Osier Yang),
  Improve error reporting when libvirtd is not installed (Daniel P. Berrange),
  spec: fix sanlock dependency (Eric Blake),
  spec: add dmidecode as prereq (Eric Blake),
  examples: Update event tests for shutdown event (Jiri Denemark),
  qemu: Rework handling of shutdown event (Jiri Denemark),
  python: Expose binding for virNodeGetMemoryStats() (Peter Krempa),
  python: Expose binding for virNodeGetCPUStats() (Peter Krempa),
  build: require more tools from maintainers (Eric Blake),
  apparmor: allow tunnelled migrations. (Serge Hallyn),
  Update of filters to handle multiple IP addresses (Stefan Berger),
  build: update to latest gnulib (Eric Blake),
  build: properly skip tests (Eric Blake),
  spec: mark directories in /var/run as ghosts (Eric Blake),
  qemu: filter blkio 0-device-weight at two other places (Hu Tao),
  qemu: amend existing table of device weights (Eric Blake),
  virsh: fix setting weight and device-weights at the same time (Hu Tao),
  Add tests for blkdeviotune (Lei Li),
  Support virDomain{Set, Get}BlockIoTune in the python API (Lei Li),
  Enable the blkdeviotune command in virsh (Lei Li),
  Implement virDomain{Set, Get}BlockIoTune for the qemu driver (Lei Li),
  Support block I/O throttle in XML (Lei Li),
  Add virDomain{Set, Get}BlockIoTune support to the remote driver (Lei Li),
  Fix leak build config file path (Daniel P. Berrange),
  Add internal APIs for dealing with time (Daniel P. Berrange),
  Remove obsolete virGetPMCapabilities sym from private symbols file (Daniel P. Berrange),
  Add suspend info to Xen, LXC and UML hypervisor capabilities (Daniel P. Berrange),
  Remove pointless strdup in node suspend code (Daniel P. Berrange),
  Do lazy init of host PM features (Daniel P. Berrange),
  Remove powerMgmt_valid field from capabilities struct (Daniel P. Berrange),
  Add export of node suspend capabilities APIs (Daniel P. Berrange),
  Move suspend capabilities APIs out of util.h into virnodesuspend.c (Daniel P. Berrange),
  Rename suspend capabilities APIs (Daniel P. Berrange),
  Sanitize virDiscoverHostPMFeature to return a boolean (Daniel P. Berrange),
  Move the virHostPMCapability enum helpers into capabilities.c (Daniel P. Berrange),
  Fix capabilities XML to use generic terms for suspend targets (Daniel P. Berrange),
  Remove internal only virHostPMCapability enum (Daniel P. Berrange),
  Fix values of PM target type constants (Daniel P. Berrange),
  blkiotune: add qemu support for blkiotune.device_weight (Hu Tao),
  blkiotune: add interface for blkiotune.device_weight (Hu Tao),
  qemu, lxc: drop redundant checks (Eric Blake),
  API: prevent query of --live and --config at once (Eric Blake),
  build: fix typo in last patch (Eric Blake),
  block_resize: Update test file for RPC (Osier Yang),
  block_resize: Expose the new API to virsh (Osier Yang),
  block_resize: Implement qemu driver method (Osier Yang),
  block_resize: Implement qemu monitor functions (Osier Yang),
  block_resize: Wire up the remote protocol (Osier Yang),
  examples: Correct the example command to use testnode.xml (Osier Yang),
  Add virsh command to initiate suspend on the host (Srivatsa S. Bhat),
  Implement the core API to suspend/resume the host (Srivatsa S. Bhat),
  Add the remote protocol implementation for virNodeSuspendForDuration (Srivatsa S. Bhat),
  Add 'Hybrid-Suspend' power management discovery for the host (Srivatsa S. Bhat),
  virsh: Don't traverse childless nodes in vshNodeIsSuperset (Michal Privoznik),
  conf: make virt-xml-validate work with vbox domains (Lorin Hochstein),
  conf: Improve incorrect root element error messages (Michal Privoznik),
  Refactor initial LXC mem tune / device ACL code (Daniel P. Berrange),
  Add support for blkio tuning of LXC containers (Daniel P. Berrange),
  Add support for CPU quota/period to LXC driver (Daniel P. Berrange),
  Support CPU placement in LXC driver (Daniel P. Berrange),
  Support NUMA memory placement for LXC containers (Daniel P. Berrange),
  storage: Refetch file status after open (Michal Privoznik),
  Fix version numbers for isAlive and setKeepAlive driver APIs (Jiri Denemark),
  build: Properly generate and check virkeepaliveprotocol-structs (Jiri Denemark),
  examples: Use virConnectOpenAuth in events-c (Jiri Denemark),
  qemu: Cancel p2p migration when connection breaks (Jiri Denemark),
  qemu: Add support for keepalive messages during p2p migration (Jiri Denemark),
  Add keepalive support into domain-events examples (Jiri Denemark),
  Implement virConnectIsAlive in all drivers (Jiri Denemark),
  Introduce virConnectIsAlive API (Jiri Denemark),
  Implement keepalive protocol in remote driver (Jiri Denemark),
  Add support for async close of client RPC socket (Jiri Denemark),
  Implement keepalive protocol in libvirt daemon (Jiri Denemark),
  virsh: Always run event loop (Jiri Denemark),
  Introduce virConnectSetKeepAlive (Jiri Denemark),
  Implement common keepalive handling (Jiri Denemark),
  rpc: Add some debug messages to virNetClient (Jiri Denemark),
  rpc: Fix handling of non-blocking calls that could not be sent (Jiri Denemark),
  rpc: Pass the buck only to the first available thread (Jiri Denemark),
  nwfilter: remove virConnectPtr from internal API calls (Stefan Berger),
  API: prefer 'disk' over 'block' or 'path' (Eric Blake),
  blockstats: support lookup by path in blockstats (Eric Blake),
  virsh: Increase device-detach intelligence (Michal Prívozník),
  Enable detection of multiple IP addresses (Stefan Berger),
  fix error message when using wrong URI alias (Eli Qiao),
  Pass additional parameter into applyDHCPOnly function (Stefan Berger),
  nwfilter: use shell variable to invoke 'ip(6)tables' command (Stefan Berger),
  nwfilter: use shell variable to invoke 'ebtables' command (Stefan Berger),
  Improve error reporting of failures to apply filtering rules (Stefan Berger),
  Add documentation for STP filtering support (Stefan Berger),
  Add test cases for STP traffic filtering (Stefan Berger),
  Add a 'mac' chain (Stefan Berger),
  Add strings.h include to capabilities.h for ffs() function prototype (Daniel P. Berrange),
  build: Update AUTHORS (Osier Yang),
  Export KVM Host Power Management capabilities (Srivatsa S. Bhat),
  qemu: Copy console definition from serial (Michal Privoznik),
  storage: Skips backingStore of virtual snapshot lv (Osier Yang),
  Add documentation for VLAN filtering support (Stefan Berger),
  Add test cases for VLAN traffic filtering (Stefan Berger),
  Don't copy sexpr node value that is an empty string (Jim Fehlig),
  enable cgroup cpuset by default (Hu Tao),
  tests: test recent hash addition (Eric Blake),
  Add test cases for parsing of list values (Stefan Berger),
  Extend NWFilter parameter parser to cope with lists of values (Stefan Berger),
  Create rules for each member of a list (Stefan Berger),
  Rework value part of name-value pairs (Stefan Berger),
  Add test cases (Stefan Berger),
  Interleave jumping into chains with filtering rules in 'root' table (Stefan Berger),
  Extend rule priorities into negative numbers (Stefan Berger),
  Enable chains with names having a known prefix (Stefan Berger),
  Extend the filter XML to support priorities of chains (Stefan Berger),
  Use the actual names of chains in data structure (Stefan Berger),
  Use scripting for cleaning and renaming of chains (Stefan Berger),
  Make filter creation in root table more flexible (Stefan Berger),
  Introduce an internal priority for chains (Stefan Berger),
  Add function to get hash table's key/value pairs (Stefan Berger),
  Add support for systemd init service (Daniel P. Berrange),
  Add support for interfaces with type=direct to LXC (Daniel P. Berrange),
  Allow creation of plain macvlan devices (Daniel P. Berrange),
  Refactor LXC network setup to allow future enhancements (Daniel P. Berrange),
  Add missing 'const' annotations for internal domain conf helpers (Daniel P. Berrange),
  qemu: Generate -numa option (Bharata B Rao),
  XML definitions for guest NUMA and parsing routines (Bharata B Rao),
  virsh: add iface-bridge and iface-unbridge commands (Laine Stump),
  Allow non-blocking message sending on virNetClient (Daniel P. Berrange),
  Refactor code for enabling/disabling I/O callback in remote client (Daniel P. Berrange),
  Split virNetClientSend into 2 methods (Daniel P. Berrange),
  Refactor code for passing the buck in the remote client (Daniel P. Berrange),
  Explicitly track whether the buck is held in remote client (Daniel P. Berrange),
  Remove all linked list handling from remote client event loop (Daniel P. Berrange),
  util: Add netdev helper functions to private symbols (Eli Qiao),
  qemu/rbd: improve rbd device specification (Sage Weil),
  maint: fix build (Stefan Berger),
  Fix error reporting in port profile parsing/formatting APIs (Daniel P. Berrange),
  API: add trivial qemu support for VIR_TYPED_PARAM_STRING (Eric Blake),
  API: remote support for VIR_TYPED_PARAM_STRING (Eric Blake),
  API: add VIR_TYPED_PARAM_STRING (Eric Blake),
  maint: use mailmap, not AUTHORS, for secondary addresses (Eric Blake),
  maint: fix make syntax-check (Stefan Berger),
  nwfilter: simplify execution of ebiptables scripts (Eric Blake),
  Remove usage of brctl command line tool (Daniel P. Berrange),
  Add an API for retrieving the MAC address of an interface (Daniel P. Berrange),
  Expose MTU management APIs (Daniel P. Berrange),
  Turn two int parameters into bools in bridge APIs (Daniel P. Berrange),
  Make all brXXX APIs raise errors, instead of returning errnos (Daniel P. Berrange),
  build: allow for local gnulib diffs (Eric Blake),
  qemu: Fix improper error message for disk detaching (Osier Yang),
  virsh: Add VSH_OFLAG_EMPTY_OK for attach-disk command (Xu He Jie)
- Cleanups:
  Remove time APIs from src/util/util.h (Daniel P. Berrange),
  bandwidth: Fix funky identation (Michal Privoznik),
  qemu: fix a const-correctness issue (Eric Blake),
  build: fix accidental POTFILES.in regression (Eric Blake),
  Fix up ordering of private symbols file (Daniel P. Berrange),
  Move ifaceMacvtapLinkDump and ifaceGetNthParent functions (Daniel P. Berrange),
  Move functions for dealing with physical/virtual devices (Daniel P. Berrange),
  Rename APIs for dealing with virtual/physical functions (Daniel P. Berrange),
  Move virNetDevValidateConfig to virnetdev.c (Daniel P. Berrange),
  Rename ifaceCheck to virNetDevValidateConfig (Daniel P. Berrange),
  Move virNetDevGetIPv4Address to virnetdev.c (Daniel P. Berrange),
  Rename ifaceGetIPAddress to virNetDevGetIPv4Address (Daniel P. Berrange),
  Move virNetDevGetIndex & virNetDevGetVLanID to virnetdev.c (Daniel P. Berrange),
  Rename ifaceGetIndex and ifaceGetVLAN (Daniel P. Berrange),
  Move MAC address replacement functions to virnetdev.c (Daniel P. Berrange),
  Rename interface MAC address replacement APIs (Daniel P. Berrange),
  Move the low level macvlan creation APIs (Daniel P. Berrange),
  Rename low level macvlan creation APIs (Daniel P. Berrange),
  Rename high level macvlan creation APIs (Daniel P. Berrange),
  Rename and split the macvtap.c file (Daniel P. Berrange),
  Rename Macvtap management APIs (Daniel P. Berrange),
  Remove ifaceSetMac and ifaceGetMac APIs (Daniel P. Berrange),
  Remove ifaceUp, ifaceDown, ifaceCtrl & ifaceIsUp APIs (Daniel P. Berrange),
  Move LXC veth.c code into shared utility APIs (Daniel P. Berrange),
  Rename the LXC veth management APIs and delete duplicated APIs (Daniel P. Berrange),
  Split src/util/network.{c,h} into 5 pieces (Daniel P. Berrange),
  Rename virVirtualPortProfileParams & APIs (Daniel P. Berrange),
  build: drop useless dirent.h includes (Eric Blake),
  xenapi: remove unused variable (Eric Blake),
  Remove code instantiating filters on direct interfaces (Stefan Berger),
  Adjust naming of network device bandwidth management APIs (Daniel P. Berrange),
  Santize naming of socket address APIs (Daniel P. Berrange),
  Split bridge.h into three separate files (Daniel P. Berrange),
  Rename all brXXXX APIs to follow new convention (Daniel P. Berrange),
  Remove 'brControl' object (Daniel P. Berrange)

### 0.9.7: Nov 08 2011

- Features:
  esx: support vSphere 5.x (Patrice LACHANCE),
  vbox: support for VirtualBox 4.1 (Matthias Bolte),
  Introduce the virDomainOpenGraphics API (Daniel P. Berrange),
  Add AHCI support to qemu driver (Jim Fehlig),
  snapshot: many improvements and 2 new APIs (Eric Blake),
  api: Add public api for 'reset' (Xu He Jie)
- Documentation:
  Add <deviceboot> capability. (Philipp Hahn),
  API: document scheduler parameter names (Eric Blake),
  improve typed parameter documentation (Eric Blake),
  fix typo in <disk>/<target> example (Eric Blake),
  python: Fix documentation of virStream recv (Matthias Bolte),
  Add documentation about migration. (Daniel P. Berrange),
  Document filesystem type='block' for LXC (Ryota Ozaki),
  fix incorrect info about routed networks (Laine Stump),
  document managed=yes of hostdev passthrough (Eric Blake),
  trivial spelling fix (Philipp Hahn),
  Fix virt-sanlock-cleanup documentation (Philipp Hahn),
  Fix two comments related to error handling (Philipp Hahn),
  fix network XML documentation (Laine Stump),
  Clarify semantics of virDomainMigrate2 (Jiri Denemark),
  Update examples for probing with systemtap (Daniel P. Berrange),
  fix html bug (Eric Blake),
  virsh: Update the help information for undefine command. (tangchen),
  Document STREQ_NULLABLE and STRNEQ_NULLABLE (Guido Günther),
  Document that ff callbacks need to be invoked from a clean stack. (Guido Günther),
  formatdomain.html.in: fix tickpolicy (Douglas Schilling Landgraf),
  virsh: describe attach-interface parameter target (Daniel Veillard),
  virsh: update man page for cpu_shares parameter (Daniel Veillard),
  document node device XML (Eric Blake),
  document virsh nodedev-* commands (Eric Blake),
  snapshot: fix man page typos (Eric Blake),
  virsh: Better document --copy-storage migrate options (Jiri Denemark),
  virsh: Enhance documentation of commands starting jobs (Jiri Denemark),
  virsh: Improve virsh manual for virsh memtune command (Peter Krempa)
- Portability:
  build: fix build on platforms without ptsname_r (Eric Blake),
  build: silence compiler warning on BSD (Eric Blake),
  build: fix linking on BSD (Eric Blake),
  remote: fix mingw32 build (Laine Stump),
  build: fix deep VPATH builds (Eric Blake),
  Use ENAMETOOLONG if the socket path is longer than UNIX_PATH_MAX (Guido Günther),
  build: avoid RHEL 5 build failure on LXC (Eric Blake),
  build: use gnulib fdatasync (Eric Blake),
  Fix virFileOpenTty definition on Win32 (Daniel P. Berrange),
  compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 (Xu He Jie),
  Fix VPATH build (Jiri Denemark),
  build: fix 'make dist' error (Wen Congyang),
  Fix syntax problem in mingw32-libvirt.spec.in (Daniel P. Berrange),
  spec: mingw cleanups (Eric Blake),
  build: fix mingw build without sasl (Eric Blake),
  build: fix 'make rpm' (Eric Blake),
  build: fix 'make distcheck' (Eric Blake),
  disable xenlight for non-Xen platforms (Dan Horák),
  build: Fix VPATH build with new probes (Jiri Denemark),
  build: fix 'make distcheck' with pdwtags installed (Eric Blake),
  spec: F15 still uses cgconfig, RHEL lacks hyperv (Eric Blake)
- Bug Fixes:
  Fix sending/receiving of FDs when stream returns EAGAIN (Daniel P. Berrange),
  lxc: avoid use-after-free (Eric Blake),
  conf: Don't free uninitialized pointer (Jiri Denemark),
  Fix default console type setting (Daniel P. Berrange),
  Fix crash formatting virtio console (Daniel P. Berrange),
  Fix off-by-one printing month in logging code (Daniel P. Berrange),
  Add missing param initialization in qemuDomainBlockStatsFlags (Daniel P. Berrange),
  fix crash when starting network (Wen Congyang),
  Don't overwrite error message during VM cleanup (Daniel P. Berrange),
  Correctly handle '*' in /etc/filesystems (Daniel P. Berrange),
  Fix URI alias prefix matching (Wen Ruo Lv),
  ServerClient: Flush cached data (Michal Privoznik),
  Fix storage pool source comparison to avoid comparing with self (Daniel P. Berrange),
  qemu: plug memory leak (Alex Jia),
  qemu: Restore the original states of PCI device when restarting daemon (Osier Yang),
  macvtap: Fix error return value convention/inconsistencies (Roopa Prabhu),
  pci address conflict when virtio disk with drive type (Xu He Jie),
  qemu: plug memory leak (Alex Jia),
  qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),
  util: Fix virUUIDGeneratePseudoRandomBytes (Ryota Ozaki),
  lxc: Revert zeroing count of allocated items if VIR_REALLOC_N fails (Peter Krempa),
  lxc: avoid null deref on lxcSetupLoopDevices failure (Alex Jia),
  lxc: avoid missing '{' in the function (Alex Jia),
  storage: avoid null deref on qemu-img failure (Eric Blake),
  storage: make previous leak less likely to regress (Eric Blake),
  storage: plug iscsi memory leak (Eric Blake),
  qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),
  qemu: Do not wait if the PCI device is not managed when reattaching (Osier Yang),
  Add missing strdup return value check (Roopa Prabhu),
  macvtap: avoid invalid free (Roopa Prabhu),
  util: Fix typo in virGetHostname description (Jiri Denemark),
  macvtap: plug memory leak for 802.1Qbh (Eric Blake),
  qemu: plug memory leak on migration (Eric Blake),
  conf: plug memory leak on error (Eric Blake),
  storage: plug memory leak on error (Eric Blake),
  util: Make getaddrinfo failure nonfatal in virGetHostname (Jiri Denemark),
  qemu: fix text block info parsing (Eric Blake),
  qemu: avoid text monitor null deref (Eric Blake),
  qemu: check for json allocation failure (Eric Blake),
  virFDStream: close also given errfd (fd leak) (Marc-André Lureau),
  command: avoid fd leak on failure (Eric Blake),
  qemu: Check for domain being active on successful job acquire (Michal Privoznik),
  xen: Return tap2 for tap2 disks (Philipp Hahn),
  xen: fix PyGrub boot device order (Philipp Hahn),
  build: fix 'make check' linkage with dtrace (Eric Blake),
  Fix deps for probes.o to ensure correct build ordering (Daniel P. Berrange),
  If receiving a stream error, mark EOF on the stream (Daniel P. Berrange),
  xen_xs: Guard against set but empty kernel argument (Guido Günther),
  snapshot: avoid accidental renames with snapshot-edit (Eric Blake),
  storage: Do not use comma as seperator for lvs output (Osier Yang),
  qemuDomainAttach: Initialize pidfile variable (Michal Privoznik),
  lxc: fix logic bug (Eric Blake),
  Don't send back unknown program errors for async messages (Daniel P. Berrange),
  Fix deadlock when the RPC program is unknown (Daniel P. Berrange),
  remote_driver: Avoid double free in EventControl building (Michal Privoznik),
  xenParseXM: don't dereference NULL pointer when script is empty (Guido Günther),
  qemu: Fix migration with dname (Jiri Denemark),
  virsh: do not unlink NULL file (Marc-André Lureau),
  qemu: Fix error message mentioning VNC instead of SPICE (Peter Krempa),
  qemu: Check for ejected media during startup and migration (Michal Privoznik),
  qemu: add return value check (Alex Jia),
  qemu: Always remove domain object if MigratePrepare fails (Jiri Denemark),
  fix AppArmor driver for pipe character devices (Jamie Strandboge),
  daemon: Don't remove pidfiles in init scripts (Peter Krempa),
  storage: Do not break the whole vol lookup process in the middle (Osier Yang),
  Fix synchronous reading of stream data (Daniel P. Berrange)
- Improvements:
  Add missing defaultConsoleTargetType callback for AppArmour (Daniel P. Berrange),
  Fix naming of constant for disk event (Daniel P. Berrange),
  lxc: use common code for process cleanup (Eric Blake),
  Set aliases for LXC/UML console devices (Daniel P. Berrange),
  Default console target type with no <target> element (Daniel P. Berrange),
  Add support for multiple consoles in LXC (Daniel P. Berrange),
  Rewrite LXC I/O forwarding to use main event loop (Daniel P. Berrange),
  Allow multiple consoles per virtual guest (Daniel P. Berrange),
  virnetsockettest: Use a temporary directory in /tmp (Guido Günther),
  xen: allow getting < max typed parameters (Eric Blake),
  lxc: allow getting < max typed parameters (Eric Blake),
  libxl: allow getting < max typed parameters (Eric Blake),
  esx: allow getting < max typed parameters (Eric Blake),
  qemu: allow getting < max typed parameters (Eric Blake),
  Add support for probing filesystem with libblkid (Daniel P. Berrange),
  Fix error message when failing to detect filesystem (Daniel P. Berrange),
  Workaround for broken kernel autofs mounts (Daniel P. Berrange),
  Ensure errno is valid when returning from lxcContainerWaitForContinue (Daniel P. Berrange),
  Create /var/lib/libvirt/filesystems for LXC trees (Daniel P. Berrange),
  esx: Support folders in the path of vpx:// connection URIs (Matthias Bolte),
  qemu: pass virConnectPtr into Domain{Attach,Detach}* (Sage Weil),
  vbox: Support shared folders (Matthias Bolte),
  xenapi: Improve error reporting in xenapiOpen once again (Matthias Bolte),
  Use a common xml type for ceph secret usage. (Josh Durgin),
  storage: add auth to virDomainDiskDef (Josh Durgin),
  secret: add Ceph secret type (Sage Weil),
  Implement RPC driver support for virDomainOpenGraphics (Daniel P. Berrange),
  Extend RPC server to allow FD passing (Daniel P. Berrange),
  Add client side support for FD passing (Daniel P. Berrange),
  Extend RPC protocol to allow FD passing (Daniel P. Berrange),
  Add APIs for virNetSocket for sending/receiving file descriptors (Daniel P. Berrange),
  Wire up QEMU implementation for virDomainOpenGraphics (Daniel P. Berrange),
  Extend graphics event to include UNIX socket (Daniel P. Berrange),
  virsh: Fix error message on vol-create-from failure (Ryota Ozaki),
  bridge: modify for use when sVirt is enabled with qemu (Tyler Coumbes),
  Use virXMLSaveFile when writing XML config (Jiri Denemark),
  Introduce virXMLSaveFile as a wrapper for virFileRewrite (Jiri Denemark),
  Introduce virFileRewrite for safe file rewrite (Jiri Denemark),
  Add a systemtap script for watching QEMU monitor interactions (Daniel P. Berrange),
  qemu: simplify use of HAVE_YAJL (Eric Blake),
  snapshot: simplify indentation of disk encryption xml (Eric Blake),
  snapshot: simplify indentation of nwfilter (Eric Blake),
  Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs (Daniel P. Berrange),
  nwfilter: extend schema to support new targets (Stefan Berger),
  util: Add virFileAccessibleAs to private symbols (Michal Privoznik),
  startupPolicy: Emit event on disk source dropping (Michal Privoznik),
  qemu: implement startupPolicy (Michal Privoznik),
  qemu: Move device alias assigning before command line construction (Michal Privoznik),
  util: Create virFileAccessibleAs function (Michal Privoznik),
  conf: Introduce optional startupPolicy attribute for cdrom and floppy (Michal Privoznik),
  waitpid: improve safety (Eric Blake),
  virsh: Fix vol-info's 'Type' output (Ryota Ozaki),
  support continue/return targets in nwfilter (David L Stevens),
  snapshot: simplify indentation of network xml (Eric Blake),
  snapshot: simplify indentation of cpu features (Eric Blake),
  snapshot: simplify indentation of sysinfo (Eric Blake),
  snapshot: test domainsnapshot indentation (Eric Blake),
  snapshot: indent domain xml when nesting (Eric Blake),
  virbuf: add auto-indentation support (Eric Blake),
  virbuf: more detailed error reporting (Eric Blake),
  virbuf: improve testsuite reporting (Eric Blake),
  virbuf: fix const-correctness (Eric Blake),
  qemu: allow json in domxml-to-native (tangchen),
  support setting bandwidth from virsh attach-interface (Hu Tao),
  lxc: use hand-rolled code in place of unlockpt and grantpt (Serge E. Hallyn),
  qemu: Test name-space handling (Philipp Hahn),
  qemu: Fix name-space handling (Philipp Hahn),
  Replace virBufferAdd with virBufferAddLit for const string (Daniel P. Berrange),
  Allow for URI aliases when connecting to libvirt (Daniel P. Berrange),
  Add support for autodestroy of guests to the LXC and UML drivers (Daniel P. Berrange),
  Use virBufferEscapeShell in cmdEcho (Guido Günther),
  qemu: replace qemuMonitorEscapeShell by virBufferEscapeShell (Guido Günther),
  virBufferEscapeShell: Emit quotes for the empty string (Guido Günther),
  snapshot: detect when qemu lacks disk-snapshot support (Eric Blake),
  virBufferEscapeShell: Fix escaping of single quotes. (Guido Günther),
  compile: Add a missing function 'pciDeviceListFind' to libvirt_private.syms (Xu He Jie),
  snapshot: implement LIST_LEAVES flag in esx (Eric Blake),
  qemu: Relax -no-shutdown check to [0.14.0, 0.15.0] (Jiri Denemark),
  qemu: Honor the orginal PCI dev properties when reattaching (Osier Yang),
  qemu: Do not reattach PCI device used by other domain when shutdown (Osier Yang),
  Xen: Fake versions in xencapstest (Philipp Hahn),
  Xen: move versions to struct (Philipp Hahn),
  Use virBufferEscapeShell in virNetSocketNewConnectSSH (Guido Günther),
  Add virBufferEscapeShell (Guido Günther),
  Autodetect if the remote nc command supports the -q option (Guido Günther),
  qemu: Make sure BeginJob is always followed by EndJob (Jiri Denemark),
  qemu: Log debug messages when changing job (Jiri Denemark),
  build: add compiler attributes to virUUIDParse (Eric Blake),
  Fix typo in lxc_controller (Serge E. Hallyn),
  build: update to latest gnulib (Eric Blake),
  events: Propose a separate lock for event queue (Michal Privoznik),
  qemu: Implement VIR_DUMP_RESET (Michal Privoznik),
  virDomainCoreDump: Introduce VIR_DUMP_RESET flag (Michal Privoznik),
  example: Support debug output and loop switch (Philipp Hahn),
  example: Redirect --help output to stdout/stderr (Philipp Hahn),
  example: Fix argument handling (Philipp Hahn),
  snapshot: implement LIST_LEAVES flag in qemu (Eric Blake),
  snapshot: add API for filtering by leaves (Eric Blake),
  tests: Add support for skipping tests (Philipp Hahn),
  Introduce <driver> under <filesystem> to support open-by-handle (Harsh Prateek Bora),
  buf: implement generic virBufferEscape (Sage Weil),
  daemon: Always advertise libvirtd service (Osier Yang),
  snapshot: take advantage of new relations (Eric Blake),
  snapshot: track qemu snapshot relations (Eric Blake),
  snapshot: framework for more efficient relation traversal (Eric Blake),
  snapshot: use correct qmp monitor command (Eric Blake),
  snapshot: virsh shorthand for operating on current snap (Eric Blake),
  build: ship helper scripts (Eric Blake),
  Rewrite all the DTrace/SystemTAP probing (Daniel P. Berrange),
  Fix missing lock calls on virNetTLSContextRef (Daniel P. Berrange),
  Refactor TLS to facilitate dynamic probing (Daniel P. Berrange),
  Add virSocketRef API to facilitate dynamic probing (Daniel P. Berrange),
  Make libvirt.so include the RPC server code (Daniel P. Berrange),
  snapshot: implement snapshot children listing in esx (Eric Blake),
  snapshot: implement snapshot children listing in qemu (Eric Blake),
  snapshot: remote protocol for snapshot children (Eric Blake),
  snapshot: virsh fallback for snapshot-list --descendants --from (Eric Blake),
  snapshot: virsh fallback for snapshot-list --from children (Eric Blake),
  snapshot: virsh fallback for snapshot-list --tree --from (Eric Blake),
  snapshot: virsh snapshot-list and children (Eric Blake),
  xen: add error handling to UUID parsing (Guido Günther),
  maint: typo fixes (Eric Blake),
  snapshot: sort snapshot-list --tree (Eric Blake),
  snapshot: simplify redefinition of disk snapshot (Eric Blake),
  snapshot: let virsh edit disk snapshots (Eric Blake),
  snapshot: fix virsh error message typo (Eric Blake),
  qemu: add separate rerror_policy for disk errors (Laine Stump),
  qemu: leave rerror policy at default when enospace is requested (Laine Stump),
  qemu: enable multifunction for older qemu (Eric Blake),
  Make LXC work with new network configuration types (Daniel P. Berrange),
  init: raise default system aio limits (Eric Blake),
  maint: fix minor issues in virterror public header (Eric Blake),
  snapshot: enforce REVERT_FORCE on qemu (Eric Blake),
  snapshot: use qemu-img on disks in use at time of snapshot (Eric Blake),
  snapshot: add REVERT_FORCE to API (Eric Blake),
  snapshot: implement snapshot roots listing in vbox (Eric Blake),
  qemu: Don't fail virDomainGetInfo if we can't update balloon info (Jiri Denemark),
  snapshot: simplify esx snapshot name lookup (Eric Blake),
  snapshot: implement snapshot roots listing in esx (Eric Blake),
  qemu: correct misspelled 'enospc' option, and only use for werror (Laine Stump),
  snapshot: better virsh handling of missing current, parent (Eric Blake),
  Allow passing of command line args to LXC container (Daniel P. Berrange),
  Add support for bandwidth filtering on LXC guests (Daniel P. Berrange),
  network: fill in bandwidth from portgroup for all forward modes (Laine Stump),
  bridge_driver.c: Fix autoconf setting (Neil Wilson),
  Set to NULL members that have been freed to prevent crashes (Marc-André Lureau),
  snapshot: implement getparent for vbox (Eric Blake),
  snapshot: implement getparent for esx (Eric Blake),
  qemu: make PCI multifunction support more manual (Laine Stump),
  lvm storage backend: handle command_names=1 in lvm.conf (Serge E. Hallyn),
  qemu: Check for outstanding async job too (Michal Privoznik),
  virsh: Add 'reset' command for virsh (Xu He Jie),
  remote: Implement 'reset' for remote driver (Xu He Jie),
  qemu: Implement 'reset' for qemu driver (Xu He Jie),
  logging: Add date to log timestamp (Jiri Denemark),
  logging: Do not log timestamp through syslog (Jiri Denemark),
  hyperv: Report an error for acceptable URI schemes with a transport (Matthias Bolte),
  esx: Report an error for acceptable URI schemes with a transport (Matthias Bolte),
  snapshot: implement getparent in qemu (Eric Blake),
  snapshot: add virsh snapshot-list --tree (Eric Blake),
  snapshot: refactor virsh snapshot parent computation (Eric Blake),
  snapshot: remote protocol for getparent (Eric Blake),
  security: properly chown/label bidirectional and unidirectional fifos (Laine Stump),
  qemu: Preserve fakeReboot flag in domain status (Jiri Denemark),
  qemu: Finish domain shutdown on reconnect (Jiri Denemark),
  qemu: Check domain status details when reconnecting monitor (Jiri Denemark),
  virsh: Allow using complete <capabilities> elements with cpu-baseline (Peter Krempa),
  virsh: Allow using domain and capabilities XMLs with cpu-compare (Peter Krempa),
  qemu: add ability to set PCI device "rombar" on or off (Laine Stump),
  qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) (Jiri Denemark),
  virLockManagerNopInit: Rename flags to unused_flags (Michal Privoznik),
  debug: Annotate some variables as unused (Michal Privoznik),
  maint: update authors (Peter Krempa),
  Add unsafe cache mode support for disk driver (Oskari Saarenmaa),
  selinux: Correctly report warning if virt_use_nfs not set (Michal Privoznik),
  virsh: Do not ignore the specified flags for cmdSaveImageDefine (Osier Yang),
  qemu: Transfer inactive XML among cookie (Michal Privoznik)
- Cleanups:
  Remove translations in socket test case (Daniel P. Berrange),
  test: drop redundant check (Eric Blake),
  startupPolicty: Minor cleanups (Michal Privoznik),
  secret: fix bad patch application (Eric Blake),
  Remove trailing whitespace from all xfig files (Daniel P. Berrange),
  Fix typo in virFileAccessibleAs (Daniel P. Berrange),
  snapshot: minor cleanups from reviewing indentation (Eric Blake),
  build: ignore test executable (Eric Blake),
  esx: drop dead code to silence Coverity (Eric Blake),
  snapshot: drop dead parameters (Eric Blake),
  qemu: silence Coverity false positive (Eric Blake),
  conf: remove unused VIR_ENUM_DECL (Laine Stump)

### 0.9.6: Sep 22 2011

- Portability:
  build: silence warning on 32-bit build (Eric Blake)
- Bug Fixes:
  snapshot: fix logic bug in qemu undefine (Eric Blake),
  sanlock: fix memory leak (Eric Blake),
  virsh: fix regression in argv parsing (Eric Blake),
  storage: Wait udev events are handled before removing lvm vol (Osier Yang),
  qemu: avoid dereferencing a NULL pointer (Alex Jia),
  qemu: Avoid loop of fake reboots (Jiri Denemark),
  qemu: Fix shutdown regression with buggy qemu (Jiri Denemark),
  remote: fix crash on OOM (Eric Blake)
- Improvements:
  snapshot: also delete empty directory (Eric Blake),
  snapshot: remove snapshot metadata on transient exit (Eric Blake),
  snapshot: prepare to remove transient snapshot metadata (Eric Blake),
  virsh: More friendly err if no pool is specified for looking up a vol (Osier Yang),
  tests: improve test failure diagnosis (Oskari Saarenmaa),
  API: prefer to use NULLSTR macro (Osier Yang),
  xen: use typical allocations (Eric Blake),
  virsh: Remove useless codes of cmdVolPath (Osier Yang)

### 0.9.5: Sep 20 2011

- Features:
  many snapshot improvements (Eric Blake),
  latency: Define new public API and structure (Osier Yang),
  USB2 and various USB improvements (Marc-André Lureau),
  storage: Add fs pool formatting (Osier Yang),
  Add public API for getting migration speed (Jim Fehlig),
  Add basic driver for Microsoft Hyper-V (Matthias Bolte)
- Documentation:
  virsh: tweak previous domblkstat patch (Eric Blake),
  virsh: doc: Fix supported driver types for attach-disk command (Peter Krempa),
  doc: Add statment about permissions needed to do a core dump (Peter Krempa),
  snapshot: tweak snapshot-create-as diskspec docs (Eric Blake),
  qemu_api: doc improvements (Eric Blake),
  virsh: Fix command name in man page (Peter Krempa),
  fix incorrect option in send-key (Alex Jia),
  virsh: improve send-key documentation (Eric Blake),
  hyperv: Add basic documentation (Matthias Bolte),
  schedinfo: update man page about virsh schedinfo command (Taku Izumi),
  virsh: Clarify documentation of -d option (Jiri Denemark),
  schedinfo: add missing documentation (Taku Izumi),
  Improve tokenizing of linkable terms (Philipp Hahn),
  Add some docs about the RPC protocol and APIs (Daniel P. Berrange),
  Align table cells on top (Philipp Hahn),
  use IPv6 addresses in range reserved for documentation (Laine Stump),
  describe new virtual switch configuration in network XML docs (Laine Stump)
- Portability:
  Update to require sanlock 1.8 for license compliance (Daniel P. Berrange),
  build: work around lack of MacOS fdatasync (Eric Blake),
  python: Fix bindings generated in VPATH build (Jiri Denemark),
  build: storage: Macro 'MKFS' is undefined on some platforms. (Peter Krempa),
  build: storage: Conditionaly compiled structure caused build fail on OSX (Peter Krempa),
  Avoid using "devname" as an identifier. (Peter Krempa),
  mingw: Don't use interface as an identifier (Matthias Bolte),
  esx: Use $(PYTHON) instead of the shebang to run the generator (Matthias Bolte),
  build: work around older systemtap header (Eric Blake),
  build: fix compilation on mingw64 (Eric Blake),
  build: fix virnetsocket on mingw (Eric Blake),
  build: fix virpidfile on mingw (Eric Blake),
  maint: fix some compilation issues on non-linux platforms (part 2) (Stefan Berger),
  maint: fix some compilation issues on non-linux platforms (Stefan Berger),
  Fix detection of GnuTLS 1.x.y (Matthias Bolte)
- Bug Fixes:
  Fix crash on events due to allocation errors (Daniel Veillard),
  conf: Assign newDef of active domain as persistent conf if it is NULL (Osier Yang),
  storage: Ensure the device path exists before refreshing disk pool (Osier Yang),
  daemon: Error and exit if specified value for timeout is not valid (Osier Yang),
  vmx: avoid memory leak (ajia@redhat.com),
  util: avoid memory leak (ajia@redhat.com),
  remote: avoid memory leak (ajia@redhat.com),
  qemu: avoid memory leak (ajia@redhat.com),
  daemon: avoid memory leak (ajia@redhat.com),
  Prevent crash from dlclose() of libvirt.so (Daniel P. Berrange),
  qemu: add return value check (Alex Jia),
  Avoid crash on restart if running guest has filterref (Stefan Berger),
  conf: avoid memory leak on virDomainDefParseXML (Alex Jia),
  Fix build after commit 829bce17 (Jim Fehlig),
  conf: add missing break in virDomainAuditRedirdev (Marc-André Lureau),
  snapshot: ABI stability must include memory sizing (Eric Blake),
  make: Fix 'make syntax-check' failing. (Peter Krempa),
  snapshot: fix double free of qemuImgBinary (Guannan Ren),
  virnetsocket: Pass KRB5CCNAME env variable (Michal Privoznik),
  Fix URL-escaping for domainDefine (Philipp Hahn),
  snapshot: fix regression with system checkpoints (Eric Blake),
  Don't treat pci_system_init failure as fatal if no PCI bus is present (Soren Hansen),
  rpc: avoid memory leak on virNetTLSContextValidCertificate (Alex Jia),
  tests: avoid memory leak on testTLSSessionInit (Alex Jia),
  libxl: avoid a dereference of a null pointer (Alex Jia),
  blockinfo: fix qemu regression in handling disk name (Eric Blake),
  esx: Fix managed object lookup with optional occurrence (Matthias Bolte),
  Threadpool: Initialize new dynamic workers (Michal Privoznik),
  Default USB device is on slot 1 function 2 (Marc-André Lureau),
  Fix localtime handling for Xen-PV domains (Philipp Hahn),
  snapshot: fix corner case on OOM during creation (Eric Blake),
  API: Init conn in case of it might be used uninitialized (Osier Yang),
  qemu: detect incomplete save files (Eric Blake),
  reserve slot 1 on pci bus0 (Wen Congyang),
  libvirtd: create run dir when running at non-root user (Xu He Jie),
  Don't overwrite errors from xend_{get,req} (Jim Fehlig),
  virsh: avoid memory leak on cmdVolCreateAs (Alex Jia),
  Fix tracking of RPC messages wrt streams (Daniel P. Berrange),
  Avoid use-after-free on streams, due to message callbacks (Daniel P. Berrange),
  Fix parted sector size assumption (Daniel P. Berrange),
  qemu: Fix a regression of domain save (Osier Yang),
  lxc: Fix incorrect changes on error codes. (Osier Yang),
  Stop libxl driver polluting logs on non-Xen hosts (Daniel P. Berrange),
  Fix memory leak parsing 'relabel' attribute in domain security XML (Daniel P. Berrange),
  Fix memory leak dispatching domain events (Daniel P. Berrange),
  Don't leak memory if a cgroup is mounted multiple times (Daniel P. Berrange),
  stream: remove redundant reference to client while sending stream data (Guannan Ren),
  Fix sanlock socket security labelling (Daniel P. Berrange),
  Fix incorrect path length check in sanlock lockspace setup (Daniel P. Berrange),
  snapshot: forbid snapshot on autodestroy domain (Eric Blake),
  Fix error detection in device change (Philipp Hahn),
  qemu: properly label outgoing pipe for tunneled migration (Eric Blake),
  Fix persistent migration config save (KAMEZAWA Hiroyuki),
  rpc: Don't close connection if program is unknown (Jiri Denemark),
  remote: Refuse connecting to remote socket (Michal Privoznik),
  Detect errors from the 'sendkey' command (Daniel P. Berrange),
  qemu: Correctly label migration TCP socket (Jiri Denemark),
  Do not try to cancel non-existent migration on source (Jiri Denemark),
  snapshot: don't leak resources on qemu snapshot failure (Eric Blake),
  Fix command test wrt gnutls initialize & fix debugging (Daniel P. Berrange),
  daemon: Move TLS initialization to virInitialize (Michal Privoznik),
  util: only fchown newly created files in virFileOpenAs (Laine Stump),
  qemu: fix off-by-one in pci slot reservation (Shradha Shah),
  pci: fix pciDeviceListSteal on multiple devices (Shradha Shah),
  qemu: Report error if qemu monitor command not found for BlockJob (Osier Yang),
  send-key: fix scan keycode map (KAMEZAWA Hiroyuki),
  storage: Flush host cache after write (Michal Privoznik),
  daemon: initialize GnuTLS (Michal Privoznik),
  Ensure async packets never get marked for sync replies (Daniel P. Berrange),
  Don't attempt to read from a stream if it is closed (Daniel P. Berrange),
  qemu: Init reattaching related members of pciDevice before reattach (Osier Yang),
  Fix race condition in abort of stream (Daniel P. Berrange),
  Ensure client streams are closed when marking a client for close (Daniel P. Berrange),
  Ensure stream is aborted when exiting console (Daniel P. Berrange),
  daemon: Add early libvirtd start verbose errors. (Peter Krempa),
  qemu: error message should show uri instead of (null) (Peter Krempa),
  libvirtd.init.in: stop/restart() wrong return value in case of failure (Douglas Schilling Landgraf),
  daemon: Fix regression of libvirtd reloading support (Osier Yang),
  virsh: fix logic bug (Eric Blake),
  storage: Directory shouldn't be listed as type 'file' (Peter Krempa),
  network: eliminate potential memory leak on parse failure (Laine Stump),
  nwfilter: tolerate disappearing interfaces while instantiating filter (Stefan Berger),
  qemu: Fix -chardev udp if parameters are omitted (Cole Robinson),
  managedsave: prohibit use on transient domains (Eric Blake),
  Check stdoutWatch before removing the handler. (Juerg Haefliger),
  Fix memory leak while scanning snapshots (Philipp Hahn),
  build: fix regression in large file support (Eric Blake),
  Don't mount /dev for application containers (Daniel P. Berrange),
  qemu: avoid crash on process attach (Eric Blake),
  rpc:fix sasl session relocking intead of unlocking it (Guannan Ren),
  daemon: Unlink unix socket paths on shutdown (Osier Yang)
- Improvements:
  Remove devname identifier from autogenerated RPC code (Peter Krempa),
  maint: Prefer names over email in 'git shortlog' (Eric Blake),
  virsh: Add more human-friendly output of domblkstat command (Peter Krempa),
  spec: silence warnings when installing in F16 (Eric Blake),
  snapshot: allow disk snapshots of qcow2 disks (Eric Blake),
  snapshot: affect persistent xml after disk snapshot (Eric Blake),
  qemu: Introduce shutdown reason for paused state (Jiri Denemark),
  qemu: Prevent disk corruption on domain shutdown (Jiri Denemark),
  qemu: Properly detect crash of a rebooted domain (Jiri Denemark),
  qemu: Fix shutoff reason when domain crashes (Jiri Denemark),
  rpc: convert unknown procedures to VIR_ERR_NO_SUPPORT (Eric Blake),
  python: Fix libvirt.py generation to include virterror info (Cole Robinson),
  sanlock: add missing test command in virt-sanlock-cleanup.in (Alex Jia),
  spec: Require augeas for sanlock (Michal Privoznik),
  Use max bandwidth from qemuDomainObjPrivate struct when migrating (Jim Fehlig),
  Set qemu migration speed unlimited when migrating to file (Jim Fehlig),
  Save migration speed in qemuDomainMigrateSetMaxSpeed (Jim Fehlig),
  Impl virDomainMigrateGetMaxSpeed in qemu driver (Jim Fehlig),
  Store max migration bandwidth in qemuDomainObjPrivate struct (Jim Fehlig),
  network: add missing exports (Eric Blake),
  xml: Clean up rest of virtual XML document names for XML strings (Peter Krempa),
  qemu_api: Update libvirt spec file (Osier Yang),
  qemu_api: Update Makefile to generate libvirtmod_qemu lib (Osier Yang),
  qemu_api: Update Py binding generator to generate files for QEMU APIs (Osier Yang),
  qemu_api: Add override XML and C files for QEMU APIs (Osier Yang),
  qemu_api: Add comments for API virDomainQemuMonitorCommand (Osier Yang),
  qemu_api: Update Makefile for subdir docs (Osier Yang),
  qemu_api: Modify apibuild.py to generate docs for QEMU APIs (Osier Yang),
  Do not log invalid operations in libvirtd logs (Daniel Veillard),
  selinux: Detect virt_use_nfs boolean set (Michal Privoznik),
  xml: Change virtual file names of xml documents parsed in memory (Peter Krempa),
  maint: update to latest gnulib (Eric Blake),
  snapshot: use new API for less work (Eric Blake),
  snapshot: new APIs for inspecting snapshot object (Eric Blake),
  virsh: fix typo in opts_send_key (Alex Jia),
  link-state: virsh: Add wrapper commands for changing link state (Peter Krempa),
  link-state: qemu: Add net intf modification to virUpdateDeviceFlags (Peter Krempa),
  link-state: qemu: Add monitor handling for link state modification (Peter Krempa),
  link-state: conf: Add element to XML for controling link state (Peter Krempa),
  link-state: util: Add equality comparison functions for structures (Peter Krempa),
  XML: Improve XML parsing error messages (Peter Krempa),
  redirdev: allows to specify device address (Marc-André Lureau),
  latency: Update virsh command domblkstat to use new API (Osier Yang),
  latency: Expose the new API for Python binding (Osier Yang),
  latency: Implemente internal API for qemu driver (Osier Yang),
  latency: Update monitor functions for new latency fields (Osier Yang),
  latency: Wire up the remote protocol (Osier Yang),
  latency: Implemente the public API (Osier Yang),
  latency: Define the internal driver callback (Osier Yang),
  qemu: Deal with stucked qemu on daemon startup (Michal Privoznik),
  qemu: Introduce job queue size limit (Michal Privoznik),
  daemon: Create priority workers pool (Michal Privoznik),
  snapshot: use SELinux and lock manager with external snapshots (Eric Blake),
  snapshot: wire up live qemu disk snapshots (Eric Blake),
  snapshot: wire up new qemu monitor command (Eric Blake),
  snapshot: make it possible to audit external snapshot (Eric Blake),
  snapshot: reject unimplemented disk snapshot features (Eric Blake),
  snapshot: wire up disk-only flag to snapshot-create (Eric Blake),
  snapshot: add flag for requesting disk snapshot (Eric Blake),
  snapshot: add virsh domblklist command (Eric Blake),
  snapshot: also support disks by path (Eric Blake),
  snapshot: add <disks> to snapshot xml (Eric Blake),
  snapshot: support extra state in snapshots (Eric Blake),
  snapshot: expose halt-after-creation in virsh (Eric Blake),
  snapshot: allow halting after snapshot (Eric Blake),
  snapshot: expose new delete flag in virsh (Eric Blake),
  snapshot: introduce new deletion flag (Eric Blake),
  snapshot: reject transient disks where code is not ready (Eric Blake),
  snapshot: additions to domain xml for disks (Eric Blake),
  Check for source conflicts in storage pools (Lei Li),
  Add a usb1 & usb2 qemuxml2argv test (Marc-André Lureau),
  PIIX3 USB controller is on function 2 (Marc-André Lureau),
  snapshot: store qemu domain details in xml (Eric Blake),
  snapshot: update rng to support full domain in xml (Eric Blake),
  snapshot: correctly escape generated xml (Eric Blake),
  snapshot: allow full domain xml in snapshot (Eric Blake),
  snapshot: refactor domain xml output (Eric Blake),
  snapshot: prevent migration from stranding snapshot data (Eric Blake),
  snapshot: support new undefine flags in qemu (Eric Blake),
  snapshot: cache qemu-img location (Eric Blake),
  snapshot: refactor some qemu code (Eric Blake),
  snapshot: teach virsh about new undefine flags (Eric Blake),
  snapshot: prevent stranding snapshot data on domain destruction (Eric Blake),
  snapshot: add qemu snapshot redefine support (Eric Blake),
  snapshot: add qemu snapshot creation without metadata (Eric Blake),
  snapshot: improve virsh snapshot-create, add snapshot-edit (Eric Blake),
  snapshot: refactor virsh snapshot creation (Eric Blake),
  snapshot: allow recreation of metadata (Eric Blake),
  snapshot: identify qemu snapshot roots (Eric Blake),
  snapshot: reflect new dumpxml and list options in virsh (Eric Blake),
  snapshot: identify which snapshots have metadata (Eric Blake),
  snapshot: let qemu discard only snapshot metadata (Eric Blake),
  snapshot: allow deletion of just snapshot metadata (Eric Blake),
  snapshot: simplify acting on just children (Eric Blake),
  snapshot: track current domain across deletion of children (Eric Blake),
  snapshot: avoid crash when deleting qemu snapshots (Eric Blake),
  snapshot: speed up snapshot location (Eric Blake),
  snapshot: add snapshot-list --parent to virsh (Eric Blake),
  snapshot: fine-tune qemu snapshot revert states (Eric Blake),
  snapshot: properly revert qemu to offline snapshots (Eric Blake),
  snapshot: improve reverting to qemu paused snapshots (Eric Blake),
  snapshot: fine-tune qemu saved images starting paused (Eric Blake),
  snapshot: expose --running and --paused in virsh (Eric Blake),
  snapshot: fine-tune ability to start paused (Eric Blake),
  snapshot: better events when starting paused (Eric Blake),
  Learn to use spicevmc as a redirection type for usb-redir (Marc-André Lureau),
  Add "redirdev" redirection device (Marc-André Lureau),
  qemu: Don't append 0 at usb id, so that it is compatible with legacy -usb (Marc-André Lureau),
  qemu: don't reserve slot 1 if a PIIX3 USB controller is defined there (Marc-André Lureau),
  Modify USB port to be defined as a port path (Marc-André Lureau),
  Add USB companion controllers support (Marc-André Lureau),
  USB devices gain a new USB address child element (Marc-André Lureau),
  test: USB controller can have a PCI address child element (Marc-André Lureau),
  Add a new controller type 'usb' with optionnal 'model' (Marc-André Lureau),
  Add USB controller models (Marc-André Lureau),
  Rename virDomainControllerModel to virDomainControllerModelSCSI (Marc-André Lureau),
  Add various USB devices QEMU_CAPS (Marc-André Lureau),
  tests: add missing files (Eric Blake),
  Add directsync cache mode support for disk driver (Osier Yang),
  storage: Add virsh support for fs pool formating (Osier Yang),
  storage: Add mkfs and libblkid to build system (Osier Yang),
  qemu: refactor file opening (Eric Blake),
  lxc: do not require 'ifconfig' or 'ipconfig' in container (Scott Moser),
  Create ptmx as a device (Serge Hallyn),
  BlockPull: Set initial bandwidth limit if specified (Adam Litke),
  BlockJob: Bandwidth parameter is in MB when using text monitor (Adam Litke),
  Increase size of buffer for xend response (Jim Fehlig),
  virsh: support 'virsh start --force-boot' on older servers (Eric Blake),
  build: fix 'make check' with pdwtags (Eric Blake),
  virsh: Expose virDomainMigrateGetMaxSpeed API (Jim Fehlig),
  virsh: prefer unsigned flags (Eric Blake),
  storage: Fix incorrect error codes (Osier Yang),
  remote: Fix incorrect error codes (Osier Yang),
  nodeinfo: Fix incorrect error codes (Osier Yang),
  conf: Substitute OPERATION_INVALID with INTERNAL_ERROR (Osier Yang),
  start: allow discarding managed save (Eric Blake),
  build: simplify use of verify (Eric Blake),
  rpc: fix a typo in debugging log in virNetServerProgramSendStreamData (Guannan Ren),
  maint: fix spelling errors on lose (Eric Blake),
  Fix generator to cope with call-by-ref long types (Jim Fehlig),
  hyperv: Add OpenWSMAN based client for the Hyper-V WMI API (Matthias Bolte),
  hyperv: Add driver skeleton (Matthias Bolte),
  hyperv: Add configure check for OpenWSMAN (Matthias Bolte),
  virterror: Fix error message for VIR_ERR_INVALID_ARG (Michal Privoznik),
  Fix keymap used to talk with QEMU (Daniel P. Berrange),
  security: Introduce SetSocketLabel (Jiri Denemark),
  security: Rename SetSocketLabel APIs to SetDaemonSocketLabel (Jiri Denemark),
  Ignore unused streams in virStreamAbort (Jiri Denemark),
  snapshot: track current snapshot across restarts (Eric Blake),
  snapshot: only pass snapshot to qemu command line when reverting (Eric Blake),
  libvirt: log all flags parameters (Eric Blake),
  virsh: add list --managed-save (Eric Blake),
  esx: Refactor a repeated string in the generator (Matthias Bolte),
  maint: fix comment typos (Eric Blake),
  virsh: Substitute goto label out with cleanup (Osier Yang),
  virsh: Do not try to free domain if it is NULL (Osier Yang),
  xen: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  storage: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  remote: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  qemu: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  nodeinfo: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  lxc: Cleanup improper VIR_ERR_NO_SUPPORT use (Osier Yang),
  conf: Cleanup improper use of VIR_ERR_NO_SUPPORT in node_device_conf (Osier Yang),
  qemu: Substitute VIR_ERR_NO_SUPPORT with VIR_ERR_OPERATION_INVALID (Osier Yang),
  virsh: Print error if specified bandwidth is invalid for blockjob (Osier Yang),
  virsh: properly interleave shared stdout and stderr (Eric Blake),
  maint: simplify lots of libxml2 clients (Eric Blake),
  xml: add another convenience function (Eric Blake),
  maint: treat more libxml2 functions as free-like (Eric Blake),
  test: rewrite test to match change in behavior (Eric Blake),
  build: fix typo in recent test patch (Eric Blake),
  vmware: Allow to undefine a running domain (Osier Yang),
  uml: Allow to undefine a running domain (Osier Yang),
  test: Allow to undefine a running domain (Osier Yang),
  qemu: Allow to undefine a running domain (Osier Yang),
  openvz: Allow to undefine a running domain (Osier Yang),
  lxc: Allow to undefine a running domain (Osier Yang),
  libxl: Allow to undefine a running domain. (Osier Yang),
  qemu: Get memory balloon info correctly for text monitor (Osier Yang),
  qemu: disk migration verbose progress (Tom Vijlbrief),
  virsh: concatenate qemu-monitor-command arguments (Eric Blake),
  virsh: tweak misleading wording (Eric Blake),
  Tweak debugging message in RPC client code (Daniel P. Berrange),
  maint: add missing symbols (Stefan Berger),
  macvtap: Fix getPhysfn to get the PF of a direct attach network interface (Roopa Prabhu),
  interface: Add functions to get sriov PF/VF relationship of a net interface (Roopa Prabhu),
  pci: Add helper functions for sriov devices (Roopa Prabhu),
  pci: Move some pci sriov helper code out of node device driver to util/pci (Roopa Prabhu),
  qemu: support event_idx parameter for virtio disk and net devices (Laine Stump),
  qemu: Use fd: protocol for migration (Jiri Denemark),
  qemu: Use virNetSocket for tunneled migration (Jiri Denemark),
  qemu: Refactor do{Tunnel,Native}Migrate functions (Jiri Denemark),
  Support changing UNIX socket owner in virNetSocketNewListenUNIX (Jiri Denemark),
  Add backlog parameter to virNetSocketListen (Jiri Denemark),
  Add API for duplicating a socket/client file descriptor (Daniel P. Berrange),
  Swap virDomain / virDomainSnapshot declaration (Philipp Hahn),
  build: fix recent build failures (Eric Blake),
  Convert libvirtd to use crash-safe pidfile APIs (Daniel P. Berrange),
  Add some APIs which use locking for crashsafe pidfile handling (Daniel P. Berrange),
  Introduce functions for checking whether a pidfile is valid (Daniel P. Berrange),
  Move pidfile functions into util/virpidfile.{c,h} (Daniel P. Berrange),
  Add virFileLock and virFileUnlock APIs (Daniel P. Berrange),
  vbox, xenapi: add virDomainUndefineFlags (Eric Blake),
  virsh: don't reject undefine on active domain (Eric Blake),
  virsh: Add dir type for listing volumes with vol-list (Peter Krempa),
  virsh: add snapshot-parent (Eric Blake),
  virsh: add virsh snapshot-current --name (Eric Blake),
  virsh: fix snapshot-create-as to handle arbitrary names (Eric Blake),
  qemu: minor formatting cleanup (Eric Blake),
  Allow use of file images for LXC container filesystems (Daniel P. Berrange),
  Fix typo in LXC cgroups setup error message (Daniel P. Berrange),
  Allow use of block devices for guest filesystem (Daniel P. Berrange),
  qemu: Avoid overwriting errors from virGetHostname (Jiri Denemark),
  network: eliminate lag in updating dnsmasq hosts files (Laine Stump),
  build: update to latest gnulib (Eric Blake)
- Cleanups:
  maint: ignore generated files (Eric Blake),
  Remove two references to files not generated (Daniel Veillard),
  latency: fix make check for remote protocol structs and numbers (Daniel Veillard),
  security: fix build (Eric Blake),
  Remove bogus virSecurityManagerSetProcessFDLabel method (Daniel P. Berrange),
  libvirt: avoid dead store in virDomainMigrateVersion3 (Alex Jia),
  qemu: avoid dead store in doPeer2PeerMigrate3 (Alex Jia),
  maint: ignore generated file (Eric Blake),
  maint: ignore generated file (Eric Blake),
  maint: let emacs avoid tabs in rng files (Eric Blake),
  virsh: fix dead store (Eric Blake),
  qemu: silence clang false positive (Eric Blake),
  qemu: avoid dead store in qemuMonitorTextBlockJob (Alex Jia),
  qemu: avoid dead store in qemuProcessStart (Alex Jia)

### 0.9.4: Aug 03 2011

- Features:
  bandwidth QoS control (Michal Privoznik),
  Add new API virDomainBlockPull* (Adam Litke),
  save: new API to manipulate save file images (Eric Blake),
  CPU bandwidth limits support (Wen Congyang),
  allow to send NMI and key event to guests (Lai Jiangshan),
  new API virDomainUndefineFlags (Osier Yang),
  Implement code to attach to external QEMU instances. (Daniel P. Berrange),
  various missing python binding (Hu Tao and Lai Jiangshan),
  bios: Add support for SGA (Michal Privoznik)
- Documentation:
  doc: fix confusing statement about required privileges (Eric Blake),
  doc: fix incorrect option in blockjob (Alex Jia),
  Correct the default value of lock_manager in qemu.conf (Guannan Ren),
  libvirt.c: Update outdated description of flags (Michal Privoznik),
  qemu: Improve docs for virsh dump format (Osier Yang),
  qemu: improve thread documentation (Eric Blake),
  doc: Add doc for blockpull and blockjob commands (Osier Yang),
  Fix incorrect implication about list options (Dave Allan),
  Fix typos in virsh.pod file (Daniel P. Berrange),
  network: Fix typo (Osier Yang),
  Break up 'Basic Resources' XML section (Cole Robinson),
  driver.h: Fix two driver documentation mistakes (Wieland Hoffmann),
  doc: Add documentation for new cputune elements period and quota (Wen Congyang),
  doc: Correct documents for iface commands (Osier Yang),
  improve virsh man page synopses (Eric Blake),
  Fix spice documentation typo (Michal Privoznik),
  document dxml argument to migrate2 (Eric Blake),
  website: Point main page links to libvirt driver pages (Dave Allan),
  maint: fix typos (Eric Blake),
  mention EMOTIVE as a libvirt-using app (Eric Blake),
  virsh: Update virsh man page (Supriya Kannery),
  Fix virsh inject-nmi man page (KAMEZAWA Hiroyuki),
  virsh: make destroy sound less scary (Eric Blake),
  minor whitespace cleanups (Eric Blake),
  Add documentation for the seclabel XML element (Daniel P. Berrange)
- Portability:
  build: fix include path for cygwin (Eric Blake),
  build: avoid non-portable shell in test setup (Eric Blake),
  tests: Don't use bash if we don't have to (Matthias Bolte),
  freebsd: Fix build problem due to picking up the wrong libvirt.h (Matthias Bolte),
  freebsd: Avoid /bin/true in commandtest (Matthias Bolte),
  freebsd: Add gnulib environ module for the commandtest (Matthias Bolte),
  build: support warnings on RHEL 5 (Eric Blake),
  Build: fix build if HAVE_AVAHI is not defined (Stefan Berger),
  sysinfo: Don't try to run dmidecode on archs missing it (Michal Privoznik),
  udev: Don't try to dump DMI on non-intel archs (Michal Privoznik),
  Fix build when using polkit0 (Jim Fehlig),
  Fix rpm build with sanlock and without QEmu (Daniel Veillard),
  Skip some xen tests if xend is not running (Jim Fehlig),
  build: fix virBufferVasprintf on mingw (Eric Blake),
  Fix compilation of statstest.c during make check (Jim Fehlig),
  Fix compilation error when SASL support is disabled (Jean-Baptiste Rouault),
  tests: Disable networkxml2argvtest when configured without network (Matthias Bolte)
- Bug Fixes:
  util: plug memory leak (Eric Blake),
  rpc: avoid null deref (Eric Blake),
  qemu: avoid memory leaks (Eric Blake),
  qemu: plug child process leak on domain core dump (Eric Blake),
  conf: avoid memory leak on disk operations (Eric Blake),
  rpc: avoid crash on error (Eric Blake),
  qemu: avoid null deref on block pull error (Eric Blake),
  rpc: correctly process sasl whitelist globs (Eric Blake),
  screenshot: don't unlink bogus file (Eric Blake),
  python: avoid unlikely sign extension bug (Eric Blake),
  rpc: avoid uninitialized memory use (Eric Blake),
  rpc: avoid double close on error (Eric Blake),
  qemu: Unlink temporary file on failure (Michal Privoznik),
  rpc: avoid libvirtd crash on unexpected client close (Eric Blake),
  virsh: fix memory leak in cmdNetworkInfo (Alex Jia),
  openvz: detect when a domain was shut down from the inside (Jean-Baptiste Rouault),
  qemu: fix crash when mixing sync and async monitor jobs (Eric Blake),
  qemu: fix return value issue (Alex Jia),
  qemu: fix return value issue in qemuDomainSetMemoryParameters (Alex Jia),
  virsh: Fix vol-name and vol-pool commands (Matthias Bolte),
  qemu: Fix a regression of domjobabort (Osier Yang),
  conf: Don't leak the virtual port profile in virNetworkDefFree (Matthias Bolte),
  network: don't forward DNS requests from isolated networks (Laine Stump),
  virsh: avoid missing zero value judgement in cmdBlkiotune (Alex Jia),
  qemu: fix nested job with driver lock held (Eric Blake),
  qemu: Fix memory leak on metadata fetching (Michal Privoznik),
  virsh: fix memory leak in cmdVolPath code (Alex Jia),
  rpc: Fix memory leak in remoteDomainSet*Parameters functions (Matthias Bolte),
  qemu: Recover from interrupted migration (Jiri Denemark),
  python: Properly report errors if virStreamRecv fails (Cole Robinson),
  Fix race in ref counting when handling RPC jobs (Daniel P. Berrange),
  Fix build with gnutls 1.0.x branch (Daniel P. Berrange),
  Add libtasn1-devel as a BuildRequires for libvirt.spec (Daniel P. Berrange),
  Add mutex protection to SASL and TLS modules (Daniel P. Berrange),
  Report error if unable to bind to any socket (Daniel P. Berrange),
  Fix leak of mDNS object in virNetServer (Daniel P. Berrange),
  Fix memory leaks in MDNS code (Daniel P. Berrange),
  python: Handle embedded NUL in stream.send data (Cole Robinson),
  Catch dnsmasq start failures (Guido Günther),
  Fix import of private key with older gnutls (Daniel P. Berrange),
  Fix TLS context tests with expired certs (Daniel P. Berrange),
  Honour filesystem readonly flag & make special FS readonly (Daniel P. Berrange),
  xenapi: Fix double-freeing the session in xenapiClose (Matthias Bolte),
  remote: Fix forgotten comma (Michal Privoznik),
  qemu: fix error message with migrate2 xml (Eric Blake),
  command: avoid leaking fds across fork (Eric Blake),
  error: preserve errno when saving last error (Eric Blake),
  Fix uninitialized variable in QEMU CPU bandwidth code (Daniel P. Berrange),
  fix make syntax-check error (Wen Congyang),
  rpc: Pass through DISPLAY so ssh can launch askpass (Cole Robinson),
  Don't try to close a NULL virNetClientPtr (Guannan Ren),
  Honour key usage/purpose criticality flag (Daniel P. Berrange),
  Fix reporting of errors for p2p migration (Daniel P. Berrange),
  Use a virFreeCallback on virNetSocket to ensure safe release (Daniel P. Berrange),
  Add mutex locking and reference counting to virNetSocket (Daniel P. Berrange),
  util: avoid fds leak when virEventPollAddHandle fail (Alex Jia),
  virsh: avoid double free of domain (Alex Jia),
  build: Fix protocol-structs check in VPATH build (Jiri Denemark),
  Fix now dead cleanup of VMs on libvirtd restart (Daniel P. Berrange),
  qemu: Fix a regression of attaching device (Osier Yang),
  storage: Avoid memory leak on metadata fetching (Michal Privoznik),
  qemu: Don't overwrite errors by closefd in error paths (Jiri Denemark),
  qemu: Save domain status ASAP after creating qemu process (Jiri Denemark),
  util: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs (Jiri Denemark),
  virsh: fix missing prompt message for 'snapshot-delete' command (Nan Zhang),
  Ensure signal handler propagates fatal signals to default handler (Daniel P. Berrange),
  qemu: Fix monitor unlocking in some error paths (Jiri Denemark),
  esx: Initialize all instances of esxVMX_Data to zero (Matthias Bolte),
  qemu: avoid fd leak on core dump failure (Eric Blake),
  domain_conf: Free temporary variable (Michal Privoznik),
  esx: Fix a potential crash (Osier Yang),
  remote: Fix memory leak (Alex Jia),
  kill vm if saving config failed in v3 protocol (Wen Congyang),
  Don't exit if the libvirtd config does not exist (Daniel P. Berrange),
  Fix sending of reply to final RPC message (Daniel P. Berrange),
  Fix leak of remote driver if final 'CLOSE' RPC call fails (Daniel P. Berrange),
  Fix release of outgoing stream confirmation/abort message (Daniel P. Berrange),
  Fix leak of 'msg' object in client stream code (Daniel P. Berrange),
  Fix potential crash in libvirtd with active streams (Daniel P. Berrange),
  Fix mistaken order of server cert/key parameters in constructor (Daniel P. Berrange),
  util: Don't try to fchown files opened as non-root (Jiri Denemark),
  qemu: Don't chown files on NFS share if dynamic_ownership is off (Michal Privoznik),
  python: Fix bogus label placement (Matthias Bolte),
  util: close the ioctl socket at the end of if(Get|Set)MacAddress (Laine Stump),
  pci: initialize state values on reattach (Guannan Ren),
  qemu: Fix virFileMakePath error handling in snapshot creation (Matthias Bolte),
  storage: Do not override the exact error of createRawFile (Osier Yang)
- Improvements:
  build: allow caching the input to STATIC_ANALYSIS (Eric Blake),
  fdstream: drop delete argument (Eric Blake),
  save: generate idempotent inactive xml for running domain (Eric Blake),
  conf: make 'vnet' prefix a macro (Eric Blake),
  utils: More useful error message for hook script failure (Osier Yang),
  tests: Unify style of test skipping code (Matthias Bolte),
  save: let qemu driver manipulate save files (Eric Blake),
  save: support qemu modifying xml on domain save/restore (Eric Blake),
  xen: make direct call when there is only one subdriver (Eric Blake),
  xen: reduce callback special cases (Eric Blake),
  xen: cleanup callback struct (Eric Blake),
  libxl: fix build failure due to change in virDomainGraphicsDef (Laine Stump),
  qemu: support type=network in domain graphics <listen> (Laine Stump),
  conf: add <listen> subelement to domain <graphics> element (Laine Stump),
  python: add python binding for virDomainSetMemoryParameters (Hu Tao),
  python: add python binding for virDomainGetMemoryParameters (Hu Tao),
  python: add python binding for virDomainSetBlkioParameters (Hu Tao),
  python: add python binding for virDomainGetBlkioParameters (Hu Tao),
  virsh: expose change-protection during migration (Eric Blake),
  send-key: Implement Python API (Lai Jiangshan),
  qemu: Remove special case for virDomainAbortJob (Jiri Denemark),
  qemu: Remove special case for virDomainSuspend (Jiri Denemark),
  qemu: Remove special case for virDomainMigrateSetMaxDowntime (Jiri Denemark),
  qemu: Remove special case for virDomainMigrateSetMaxSpeed (Jiri Denemark),
  qemu: Remove special case for virDomainBlockStats (Jiri Denemark),
  qemu: Remove special case for virDomainGetBlockInfo (Jiri Denemark),
  qemu: Migration job on source daemon (Jiri Denemark),
  qemu: Migration job on destination daemon (Jiri Denemark),
  qemu: Implement migration job phases (Jiri Denemark),
  bandwidth: Integrate bandwidth into portgroups (Michal Privoznik),
  tools: format percent strings of nodecpustats (Alex Jia),
  set cpu bandwidth for the vm (Wen Congyang),
  virsh: use faster bit search (Eric Blake),
  virsh: make vcpucount use --current consistently (Eric Blake),
  vcpu: teach getVcpusFlags about current (Eric Blake),
  util: change virFile*Pid functions to return < 0 on failure (Laine Stump),
  rename cfs_* to vcpu_* (Wen Congyang),
  python: add Python binding for virDomainGetVcpuPinInfo API (Taku Izumi),
  python: add Python binding for virDomainPinVcpusFlags API (Taku Izumi),
  python: add Python binding for virDomainGetSchedulerParametersFlags API (Taku Izumi),
  python: add Python binding for virDomainGetSchedulerParametersFlags API (Taku Izumi),
  tests: detect gnutls errors (Eric Blake),
  bandwidth: Add domain schema and xml2xml tests (Michal Privoznik),
  bandwidth: Add test cases for network (Michal Privoznik),
  bandwidth: Implement functions to enable and disable QoS (Michal Privoznik),
  bandwidth: Create format functions (Michal Privoznik),
  bandwidth: Add parsing and free functions (Michal Privoznik),
  bandwidth: Declare internal structures (Michal Privoznik),
  bandwidth: Define schema and create documentation (Michal Privoznik),
  network: provide internal API to return IP of a network (Laine Stump),
  util: add an ifaceGetIPAddress to the interface utilities (Laine Stump),
  Pre-create /var/lib/libvirt/sanlock directory (Daniel P. Berrange),
  Refactor mounting of special filesystems (Daniel P. Berrange),
  Pull code for doing a bind mount into separate method (Daniel P. Berrange),
  Fix typos in daemon config file from previous commit (Daniel P. Berrange),
  Add a test case for certificate validation (Daniel P. Berrange),
  Allow certificate sanity checking to be disabled (Daniel P. Berrange),
  remote/ssh: optional "keyfile" parameter. (Oskari Saarenmaa),
  util: make interface.c functions consistently return < 0 on error (Laine Stump),
  Refactor the certification validation code (Daniel P. Berrange),
  Remove call to deprecated gnutls_certificate_type_set_priority (again) (Daniel P. Berrange),
  Ensure that libvirtd shuts down if initialization fails (Daniel P. Berrange),
  Asynchronous event for BlockJob completion (Adam Litke),
  Enable virDomainBlockPull in the python API (Adam Litke),
  Enable the virDomainBlockPull API in virsh (Adam Litke),
  Implement virDomainBlockPull for the qemu driver (Adam Litke),
  Add virDomainBlockPull support to the remote driver (Adam Litke),
  virDomainBlockPull: Implement the main entry points (Adam Litke),
  save: add virsh commands for manipulating save files (Eric Blake),
  save: wire up remote protocol (Eric Blake),
  save: support bypass-cache flag in libvirt-guests init script (Eric Blake),
  save: support bypass-cache flag in qemu.conf (Eric Blake),
  save: support BYPASS_CACHE during qemu save/restore (Eric Blake),
  save: add virFileDirectFd wrapper type (Eric Blake),
  save: let iohelper work on O_DIRECT fds (Eric Blake),
  save: let iohelper handle inherited fd (Eric Blake),
  save: support --xml to virsh save/restore (Eric Blake),
  save: add --bypass-cache flag to virsh save/restore operations (Eric Blake),
  save: wire up trivial save/restore flags implementations (Eric Blake),
  error: add new error type for reflecting partial API support (Eric Blake),
  network: internal API functions to manage assignment of physdev to guest (Laine Stump),
  qemu: use virDomainNetGetActual*() in qemuDomainXMLToNative (Laine Stump),
  qemu: use virDomainNetGetActual*() functions where appropriate (Laine Stump),
  network: separate Start/Shutdown functions for new network types (Laine Stump),
  conf: support abstracted interface info in network XML (Laine Stump),
  conf: support abstracted interface info in domain interface XML (Laine Stump),
  conf: virDomainNetDef points to (rather than contains) virtPortProfile (Laine Stump),
  conf: put virtPortProfile struct / functions in a common location (Laine Stump),
  destroy: Implement internal API for xenapi driver (Michal Privoznik),
  destroy: Implement internal API for xen driver (Michal Privoznik),
  destroy: Implement internal API for vmware driver (Michal Privoznik),
  destroy: Implement internal API for vbox driver (Michal Privoznik),
  destroy: Implement internal API for uml driver (Michal Privoznik),
  destroy: Implement internal API for phyp driver (Michal Privoznik),
  destroy: Implement internal API for openvz driver (Michal Privoznik),
  destroy: Implement internal API for lxc driver (Michal Privoznik),
  destroy: Implement internal API for libxl driver (Michal Privoznik),
  destroy: Implement internal API for ESX driver (Michal Privoznik),
  destroy: Implement internal API for qemu driver (Michal Privoznik),
  destroy: Wire up the remote protocol (Michal Privoznik),
  destroy: Define new public API virDomainDestroyFlags (Michal Privoznik),
  save: wire up remote protocol (Eric Blake),
  save: new public API to bypass file system cache on save/restore (Eric Blake),
  build: rename files.h to virfile.h (Eric Blake),
  command: move all docs into .c file (Eric Blake),
  rpc: Make the dispatch generator handle 'void name(void)' style procedures (Matthias Bolte),
  python: Fix makefile rule for code generation (Matthias Bolte),
  qemu: Implement cfs_period and cfs_quota's modification (Wen Congyang),
  qemu: Implement period and quota tunable XML configuration and parsing (Wen Congyang),
  Update XML Schema for new entries (Wen Congyang),
  cgroup: Implement cpu.cfs_period_us and cpu.cfs_quota_us tuning API (Wen Congyang),
  Introduce the function virCgroupForVcpu (Wen Congyang),
  qemu: send-key: Implement the driver methods (Lai Jiangshan),
  send-key: Expose the new API in virsh (Lai Jiangshan),
  util: add virtkeycode module (Lai Jiangshan),
  util: Add keymaps.csv (Lai Jiangshan),
  Fix checking of key usage/purpose data (Daniel P. Berrange),
  Fix mixed up error messages when reporting TLS certificate problems (Daniel P. Berrange),
  undefine: Extend virsh undefine to support the new flag (Osier Yang),
  undefine: Implement undefineFlags for all other drivers (Osier Yang),
  undefine: Implement internal API for libxl driver (Osier Yang),
  undefine: Implement internal API for qemu driver (Osier Yang),
  undefine: Wire up the remote protocol (Osier Yang),
  undefine: Define the new API (Osier Yang),
  Add sanity checking of basic constraints, key purpose & key usage (Daniel P. Berrange),
  Add some basic sanity checking of certificates before use (Daniel P. Berrange),
  Add an explicit virNetClientClose method (Daniel P. Berrange),
  Add some debugging for virNetClient reference counting (Daniel P. Berrange),
  build: detect doc generation failure (Eric Blake),
  Unregister event callback if a fatal error occurs during dispatch (Daniel P. Berrange),
  Quieten build & ensure API build scripts exit with non-zero status (Daniel P. Berrange),
  virsh: Extend virsh dominfo to display if managed save image exists (Osier Yang),
  libvirt: do not mix internal flags into public API (Eric Blake),
  rpc: Fix typos in rpc generator scripts (Osier Yang),
  build: also track RPC on-wire enum values (Eric Blake),
  build: add syntax check for proper flags use (Eric Blake),
  xen: reject unknown flags (Eric Blake),
  esx: reject unknown flags (Eric Blake),
  virsh: improve option handling (Eric Blake),
  flags: fix domain_conf migration regression (Eric Blake),
  flags: fix qemu migration regression (Eric Blake),
  flags: use common dumpxml flags check (Eric Blake),
  add --cache, --serial, --shareable and --address to attach-disk (Hu Tao),
  Fix error message for missing TLS write function (Daniel P. Berrange),
  Fix reporting of cert validation failures (Daniel P. Berrange),
  Fix error code for storage operations (Dave Allan),
  setvcpus: add "--current" option to "virsh setvcpus" (Taku Izumi),
  setvcpus: extend qemuDomainSetVcpusFlags() to support current flag (Taku Izumi),
  setvcpus: extend virDomainSetVcpusFlags API to support current flag (Taku Izumi),
  Add domain events support to UML driver (Daniel P. Berrange),
  virnetsocket: use new API for uniform child cleanup (Eric Blake),
  fdstream: avoid child process leak on error (Eric Blake),
  command: introduce virPidWait, virPidAbort (Eric Blake),
  update apparmor security driver for new udev paths (Jamie Strandboge),
  xenapi: Improve error reporting in xenapiOpen (Matthias Bolte),
  build: fix VPATH build of todo (Eric Blake),
  build: check for virnetprotocol on-the-wire stability (Eric Blake),
  build: disable some drivers when building without libvirt daemon (Wen Congyang),
  build: avoid ATTRIBUTE_UNUSED in headers (Eric Blake),
  remote: prefer unsigned flags (Eric Blake),
  conf: delete unused flags arguments (Eric Blake),
  virsh: fix previous patch (Jiri Denemark),
  virsh: Make "DEBUG" loglevel the superset (Supriya Kannery),
  virsh: Avoid using magic numbers for logging (Supriya Kannery),
  build: don't hand-roll cloexec code (Eric Blake),
  conf: prefer unsigned flags (Eric Blake),
  python: prefer unsigned flags (Eric Blake),
  node_device: avoid implicit int (Eric Blake),
  virsh, daemon: prefer unsigned flags (Eric Blake),
  xenapi: reject unknown flags (Eric Blake),
  vmware: reject unknown flags (Eric Blake),
  vbox: reject unknown flags (Eric Blake),
  uml: reject unknown flags (Eric Blake),
  test: reject unknown flags (Eric Blake),
  qemu: reject unknown flags (Eric Blake),
  phyp: reject unknown flags (Eric Blake),
  openvz: reject unknown flags (Eric Blake),
  lxc: reject unknown flags (Eric Blake),
  libxl: reject unknown flags (Eric Blake),
  qemu: build failed due to unused variables (Peter Krempa),
  storage: reject unknown flags (Eric Blake),
  node_device: reject unknown flags (Eric Blake),
  util: reject unknown flags, and prefer unsigned flags (Eric Blake),
  libvirt-qemu: use unsigned flags (Eric Blake),
  maint: print flags in hex during debug (Eric Blake),
  maint: exclude more files from syntax check (Eric Blake),
  util: honor anchored names when searching for executables (Eric Blake),
  Remove unused virNetServerProgramErrorHander typedef (Daniel P. Berrange),
  qemu: Consolidate qemuMigrationPrepare{Direct,Tunnel} (Jiri Denemark),
  qemu: Add support for job phase (Jiri Denemark),
  qemu: Recover from interrupted jobs (Jiri Denemark),
  qemu: Save job type in domain status XML (Jiri Denemark),
  qemu: Allow all query commands to be run during long jobs (Jiri Denemark),
  qemu: Consolidate {Enter,Exit}Monitor{,WithDriver} (Jiri Denemark),
  qemu: Consolidate BeginJob{,WithDriver} into a single method (Jiri Denemark),
  qemu: Separate job related data into a new object (Jiri Denemark),
  maint: avoid incremental 'make syntax-check' failure (Eric Blake),
  Skip bugs which are CLOSED in todo list (Daniel P. Berrange),
  Add missing cleanup for transient guests in UML driver (Daniel P. Berrange),
  Add auditing to the UML driver (Daniel P. Berrange),
  Add auditing to the LXC driver (Daniel P. Berrange),
  Add virtualization type in audit messages (Daniel P. Berrange),
  Add auditing of filesystems (Daniel P. Berrange),
  Move qemu_audit.h helpers into shared code (Daniel P. Berrange),
  rpc: Fix compile error due to potentially unused parameter (Matthias Bolte),
  Add monitor API for checking whether KVM is enabled (Daniel P. Berrange),
  Add a method for extracting QEMU argv from /proc (Daniel P. Berrange),
  Change extract pidfile & monitor config from QEMU command line (Daniel P. Berrange),
  Keep pidfile path in qemuDomainObjPrivate struct (Daniel P. Berrange),
  Add a new 'virsh qemu-attach' command. (Daniel P. Berrange),
  Define remote wire protocol & impls for virDomainQemuAttach (Daniel P. Berrange),
  Define a QEMU specific API to attach to a running QEMU process (Daniel P. Berrange),
  qemu: update configuration file (Alex Jia),
  maint: rename virtaudit to match file contents (Eric Blake),
  remote/ssh: support for no_verify. (Oskari Saarenmaa),
  build: also check qemu_protocol for on-the-wire stability (Eric Blake),
  build: avoid requiring -lm (Eric Blake),
  Remove code no longer used after commit df0b57a9 (Jim Fehlig),
  Add domain type checking (Matthias Bolte),
  tests: simplify formatting (Eric Blake),
  Do not drop kernel cmdline for xen pv domains (Jim Fehlig),
  RPC: fix argument's name (Wen Congyang),
  fix typo error (Wen Congyang),
  vbox: Fix logic in storage driver open function (Matthias Bolte),
  tests: Improve output of tests that decide to skip at runtime (Matthias Bolte),
  tests: Fix compressed test output padding logic (Matthias Bolte),
  tests: Use EXIT_AM_SKIP instead of 77 directly (Matthias Bolte),
  rpc: Fix whitespace problem in generated code (Matthias Bolte),
  sanlock: avoid lockspace setup when auto_disk_lease is off (Federico Simoncelli),
  libvirtd: diagnose explicitly requested but missing conf file (Eric Blake),
  qemu: clean up OOM checks (Michael Santos),
  graphics: add support for action_if_connected in qemu (Michal Privoznik),
  microblaze: Add architecture support (John Williams),
  util: drop unused safezero argument (Eric Blake),
  conf: prefer unsigned int for flags (Eric Blake),
  drivers: prefer unsigned int for flags (Eric Blake),
  public API: prefer unsigned int for flags (Eric Blake),
  maint: print flags in hex during debug (Eric Blake),
  build: use gnulib pthread_sigmask (Eric Blake),
  util: rename err_exit to cleanup in interface.c (Laine Stump),
  sysinfo: delete unnecessary white space of sysinfo. (Minoru Usui),
  util: add virTrimSpaces (Eric Blake),
  util: fix virSkipSpaces (Eric Blake),
  Reduce code duplication in virFileMakePath(Helper) (Matthias Bolte),
  apparmor: Finish incomplete renaming of relabel to norelabel (Matthias Bolte),
  Fix default value of security label 'relabel' attribute (Daniel P. Berrange),
  Fix return value semantic of virFileMakePath (Matthias Bolte),
  nodedev: Let check_fc_host_linux report errors to the caller (Matthias Bolte),
  xml: create an RNG file for common types and move some definitions there (Laine Stump),
  docs: sort the file list in the schemas Makefile (Laine Stump),
  qemu: check flags in qemuDomainGetXMLDesc (Laine Stump),
  conf: fix domain parse flags (Laine Stump),
  conf: Fix declaration of virNetworkDNS(Hosts)Def struct (Matthias Bolte),
  Allow for resource relabelling with static labels (Daniel P. Berrange),
  Allow a base label to be specified in dynamic labelling mode (Daniel P. Berrange)
- Cleanups:
  qemu: silence coverity false positives (Eric Blake),
  interface: drop dead code (Eric Blake),
  rpc: silence coverity false positives (Eric Blake),
  build: silence coverity false positives (Eric Blake),
  qemu: remove dead code (Eric Blake),
  maint: add missing copyright notices (Eric Blake),
  xen: drop unused callbacks (Eric Blake),
  build: avoid type-punning compiler warning (Eric Blake),
  tests: fix compilation failures (Eric Blake),
  build: Use $(PYTHON) instead of python for the keycode map generator (Matthias Bolte),
  build: fix bugs with destroyFlags patches (Eric Blake),
  util: define MAX (Laine Stump),
  maint: fix typos on guaranteed (Eric Blake),
  build: fix broken build (Eric Blake),
  maint: fix spelling of Red Hat (Eric Blake),
  tests: Fix virshtest failure after dominfo changed (Osier Yang)

### 0.9.3: Jul 04 2011

- Features:
  vcpupin: introduce the new libvirt API (virDomainGetVcpupinInfo) (Taku Izumi),
  Add TXT record support for virtual DNS service (Michal Novotny),
  Support reboots with the QEMU driver (Daniel P. Berrange),
  Introduce virDomainGetControlInfo API (Jiri Denemark),
  virNodeGetMemoryStats: Expose new API (Minoru Usui),
  virNodeGetCPUTime: Implement public API (Minoru Usui),
  send-key: Defining the public API (Lai Jiangshan),
  vcpupin: introduce a new libvirt API (virDomainPinVcpuFlags) (Taku Izumi),
  support multifunction PCI device (Wen Congyang),
  lxc: various improvements (Cole Robinson)
- Documentation:
  Add documentation for configuration lock managers (Daniel P. Berrange),
  fix indentation of sub-elements of <ip> in network XML (Laine Stump),
  document correct flag name (Eric Blake),
  documenting the 802.1Qbh parameters of a 'direct' interface (David S. Wang),
  Make virConnectClose comply to apibuild.py expectations (Matthias Bolte),
  fix docs to match behavior of virConnectClose (Eric Blake),
  numatune: Add doc for new numatune XML (Osier Yang),
  Fix documentation of virStreamRecv (Matthias Bolte),
  updated list of applications using libvirt. (Ohad Levy),
  improve VIR_DOMAIN_AFFECT_CURRENT description (Eric Blake),
  Add doc for video element (Osier Yang),
  Make hvsupport.pl pick up the host device drivers (Matthias Bolte)
- Portability:
  Explicitly invoke python for API doc generator (Daniel Veillard),
  fix virParseVersionString with linux 3.0 (Scott Moser),
  Add conditionals to allow build without SASL (Daniel P. Berrange),
  Add missing include of signal.h in virnetsocket.c (Daniel P. Berrange),
  Fix compilation with systemtap 1.3 (Matthias Bolte),
  build: fix mingw build (Eric Blake),
  daemon: Fix build without polkit (Jiri Denemark),
  build: fix 'make check' when pdwtags is available (Eric Blake),
  build: sanlock-devel is not in F15 yet (Eric Blake),
  Only include parthelper if built with storage_disk (Ruben Kerkhof),
  build: fix VPATH builds (Eric Blake),
  python: Don't declare Py_ssize_t for Python 2.6 (Matthias Bolte),
  build: avoid python 2.4 build failure (Eric Blake),
  build: fix NUMA build on RHEL 5 (Eric Blake),
  build: avoid python 2.4 build failure (Eric Blake),
  build: avoid compiler failure (Eric Blake),
  build: fix compilation on systems missing libnl and new includes (Stefan Berger),
  configure: Make libnl optional unless macvtap is required (Matthias Bolte),
  build: require newer netcf when it is available (Eric Blake),
  build: fix building error when building without libvirtd (Wen Congyang),
  Skip nodeinfo test on non intel architectures (Guido Günther),
  Fix dlopen dependency (Matthias Bolte),
  virt-aa-helper: add missing include (Eric Blake)
- Bug Fixes:
  initialize pointer to NULL (Wen Congyang),
  storage: avoid crash on parse error (Eric Blake),
  vmware: avoid null deref on failed lookup (Eric Blake),
  qemu: avoid null deref on low memory (Eric Blake),
  rpc: avoid memory leak on error (Eric Blake),
  rpc: fix logic bug (Eric Blake),
  pci: avoid memory leak on error (Eric Blake),
  interface: avoid memory leak on parse error (Eric Blake),
  libvirtd: avoid memory leak on OOM (Eric Blake),
  build: avoid double-close bug with pipe2 (Eric Blake),
  rpc: avoid freeing uninitialized variable (Eric Blake),
  virsh: avoid uninitialized variable (Eric Blake),
  virsh: avoid integer overflow (Eric Blake),
  Fix stream procedure number for virDomainMigratePrepareTunnel3 (Daniel P. Berrange),
  Fix release of virNetMessagePtr instances in streams processing (Daniel P. Berrange),
  Fix potential crash when saving guests (Daniel P. Berrange),
  Fix uninitialized value in QEMU monitor FD sending code (Daniel P. Berrange),
  Fix leak of JSON object for events (Daniel P. Berrange),
  Fix use of uninitialized memory when releasing PCI slots (Daniel P. Berrange),
  Fix leak of virStreamPtr object with callback added in fdstream impl (Daniel P. Berrange),
  Fix leak of mdnsGroupName in virNetServer object (Daniel P. Berrange),
  Fix release of filtered stream messages (Daniel P. Berrange),
  save domain status after modifying vcpupin (Wen Congyang),
  Fix memory leak in virDomainVcpuPinDel() (Wen Congyang),
  sysinfo: fix illegal NULL return (Minoru Usui),
  Fix locking wrt virNetClientStreamPtr object (Daniel P. Berrange),
  Avoid referencing NULL pointer when copying stream error (Daniel P. Berrange),
  Avoid free'ing a filtered RPC message in the server (Daniel P. Berrange),
  Ensure empty payload is written upon stream completion (Daniel P. Berrange),
  Fix propagation of RPC errors from streams (Daniel P. Berrange),
  Fix crash when aborting a stream from a I/O callback (Daniel P. Berrange),
  dnsmasq: Fix errno handling and don't unlink non-existing files (Matthias Bolte),
  tests: Fix memory leak in virnetmessagetest (Osier Yang),
  conf: Fix memory leak in virNetworkDNSDefFormat (Osier Yang),
  sysinfo: fix parsing regression (Eric Blake),
  remote: fix uninitialized variable (Eric Blake),
  build: avoid uninitialized variable (Eric Blake),
  buf: protect against integer overflow (Eric Blake),
  remote: protect against integer overflow (Eric Blake),
  Fix typo in libvirt_private.syms (Matthias Bolte),
  Fix some bugs in RPC protocol make rules (Daniel P. Berrange),
  Fix job type set in qemuMigrationPrepareDirect/PrepareTunnel (Daniel P. Berrange),
  Avoid high privileges taint warning for QEMU session driver (Daniel P. Berrange),
  util: Fix memory leak in virJSONParserHandleStartMap (Osier Yang),
  qemu: Fix memory leak in qemuProcessWaitForMonitor (Osier Yang),
  storage: fix volDelete return when volume still being allocated (Matthew Booth),
  Fix use-after-free in handling domain taint flags (Daniel P. Berrange),
  qemu: Fix one memory leak (Osier Yang),
  virsh: avoid bogus description (Eric Blake),
  set and restore MAC address of a NIC when using PASSTHROUGH mode (Dirk Herrendoerfer),
  conf: Fix one memory leak (Osier Yang),
  Add missing checks for NULL in domain lock manager (Daniel P. Berrange),
  Fix errno return in safezero() (Daniel P. Berrange),
  Fix allocation of veth's to not skip an index (Daniel P. Berrange),
  command: avoid double close (Eric Blake),
  qemu: Fix parsing 'info chardev' (Cole Robinson),
  vcpupin: Fix cpu affinity setting bug of qemu driver (Taku Izumi),
  daemon: plug memory leak (Eric Blake),
  qemu: add missing break statement (Eric Blake),
  storage: avoid mishandling backing store > 2GB (Eric Blake)
- Improvements:
  tests: Add a general util test (Matthias Bolte),
  util: choose whether to require micro in version strings (Eric Blake),
  build: consistently use CFLAGS (Eric Blake),
  build: simplify sanlock distribution (Eric Blake),
  build: allow 'make syntax-check' on fresh checkout (Eric Blake),
  Send back an error if we get unexpected stream control message (Daniel P. Berrange),
  Add test case for parsing JSON docs (Daniel P. Berrange),
  Remove bogus warning message in JSON code (Daniel P. Berrange),
  Ensure RPC message is cleared before being reused (Daniel P. Berrange),
  Fix hardcoded limit on client requests in RPC code (Daniel P. Berrange),
  tests: Add valgrind.supp into EXTRA_DIST (Osier Yang),
  virsh: Fix a problem of buildPoolXML (Osier Yang),
  lock qemu_driver early in qemuGetSchedulerParametersFlags() (Wen Congyang),
  build: avoid pod2man on tarball (Eric Blake),
  Ensure that EOF is dispatched to the stream callback (Daniel P. Berrange),
  Improve two log messages in virNetMessage (Daniel P. Berrange),
  Lower logging level when failing to register socket watch (Daniel P. Berrange),
  screenshot: Set access rights to temporary file (Michal Privoznik),
  maint: improve makefile whitespace (Eric Blake),
  network: Don't ignore errors in dnsmasq config file creation (Matthias Bolte),
  network: Fix dnsmasq hostsfile creation logic and related tests (Matthias Bolte),
  build: update translated files (Eric Blake),
  Support automatic creation of leases for disks in sanlock (Daniel P. Berrange),
  Support loading a configuration file for sanlock plugin (Daniel P. Berrange),
  Allow per-driver config file for lock manager plugins (Daniel P. Berrange),
  network: add domain to unqualified names defined with <host> (Laine Stump),
  Convert libvirtd over to the new RPC handling APIs (Daniel P. Berrange),
  Convert the remote driver to new RPC client APIs (Daniel P. Berrange),
  Add XDR_CFLAGS to libvirt-net-rpc.la library (Daniel P. Berrange),
  Ensure sanlock socket is labelled with the VM process label (Daniel P. Berrange),
  Add a virSecurityManagerSetProcessFDLabel (Daniel P. Berrange),
  Rename virSecurityManagerSetFDLabel method (Daniel P. Berrange),
  Add node prefix to virNodeGet(CPU|Memory)Stats structs and defines (Matthias Bolte),
  qemu: Fix update device for CURRENT + FORCE flags (Jiri Denemark),
  nwfilter: Return error message about unresolvable variables (Stefan Berger),
  build: rename Vcpupin to VcpuPin (Eric Blake),
  sysinfo: cleanup function/struct names. (Minoru Usui),
  sysinfo: fix lack of error check in virSysinfoFormat(). (Minoru Usui),
  tests: Partly fix networkxml2argvtest being configure result dependent (Matthias Bolte),
  qemu: Remove bogus error codes for NUMA memory tuning (Osier Yang),
  network: fix indentation in networkBuildDnsmasqArgv (Laine Stump),
  vcpupin: add query option to virsh vcpupin command (Taku Izumi),
  vcpuinfo: add the code to fallback to try new API (Taku Izumi),
  vcpupin: implement the remote protocol to address the new API (Taku Izumi),
  vcpupin: implement the code to support new API for the qemu driver (Taku Izumi),
  build: update gnulib for intprops (Eric Blake),
  Rename iface(G|S)etMacaddr to iface(G|S)etMacAddress for consistency (Matthias Bolte),
  Network: Add support for DNS hosts definition to the network XML (Michal Novotny),
  Network: Add additional hosts internal infrastructure (Michal Novotny),
  Network: Add regression tests for the command-line arguments (Michal Novotny),
  Network: modify dnsmasq commandline build function to allow testing (Michal Novotny),
  tests: Improve IPv6 detection for virNetSocket tests (Matthias Bolte),
  Move load of AppArmor profile to GenLabel() (Jamie Strandboge),
  Add Memory Device Information to virSysinfoRead() from dmidecode type 17 (Minoru Usui),
  Add Processor Information to virSysinfoRead() from dmidecode type 4 (Minoru Usui),
  Cleanup virSysinfoRead() (Minoru Usui),
  Make sure virnetprotocol.[ch] are in BUILT_SOURCES (Daniel P. Berrange),
  maint: typo fixes (Eric Blake),
  Add missing translation of error message from QEMU reboot patch (Daniel P. Berrange),
  Allow automatic kill of guests when a connection is closed (Daniel P. Berrange),
  Automatically kill target QEMU if migration aborts abnormally (Daniel P. Berrange),
  Add infrastructure to automatically destroy guests when a connection closes (Daniel P. Berrange),
  Move the RPC generator scripts into src/rpc (Daniel P. Berrange),
  Introduce generic RPC client objects (Daniel P. Berrange),
  Introduce generic RPC module for advertising via MDNS (Daniel P. Berrange),
  Introduce generic RPC server objects (Daniel P. Berrange),
  Integrate TLS/SASL directly into the socket APIs (Daniel P. Berrange),
  Generic module for handling SASL authentication & encryption (Daniel P. Berrange),
  Generic module for handling TLS encryption and x509 certs (Daniel P. Berrange),
  Introduce a generic object for using network sockets (Daniel P. Berrange),
  Provide a simple object for encoding/decoding RPC messages (Daniel P. Berrange),
  Defines the basics of a generic RPC protocol in XDR (Daniel P. Berrange),
  build: update to latest gnulib (Eric Blake),
  python: Generate virStreamFree but don't expose in bindings (Cole Robinson),
  maint: avoid future setgid problems (Eric Blake),
  qemu: Only check for NUMA availability if required (Jiri Denemark),
  util: avoid PATH_MAX-sized array (Eric Blake),
  xen: avoid PATH_MAX-sized array (Eric Blake),
  tests: avoid PATH_MAX-sized array (Eric Blake),
  virStorageVol: avoid PATH_MAX-sized array (Eric Blake),
  cleanup: make several interface functions commonly available (Stefan Berger),
  cleanup: make nlComm commonly available (Stefan Berger),
  maint: remove syntax-check exception (Eric Blake),
  Remove macvtap dependency on domain configuration (Daniel P. Berrange),
  util: Correct the error prompt string (Osier Yang),
  Fix to python API extractor and API doc generation (Daniel Veillard),
  qemu: domain I/O asynchronous handling (Michal Privoznik),
  python: Mark event callback wrappers as private (Cole Robinson),
  python: events: Fix C->Python handle callback prototype (Cole Robinson),
  python: Add bindings for virEvent*Handle/Timeout (Cole Robinson),
  events: Correct virEventAddTimeout docs (Cole Robinson),
  Promote virEvent*Handle/Timeout to public API (Cole Robinson),
  python: Implement virStreamSend/RecvAll helpers (Cole Robinson),
  python: Implement virStreamSend/Recv (Cole Robinson),
  conf: Make full use of goto label (Osier Yang),
  python: Implement bindings for virStreamEventAddCallback (Cole Robinson),
  python: generator: Don't print warning if nothing to warn about (Cole Robinson),
  python: libvirt-override: use simpler debug (Cole Robinson),
  virsh: enhance snapshot-create-as (Eric Blake),
  virsh: add snapshot-create-as command (Eric Blake),
  virsh: clarify snapshot vs. save (Eric Blake),
  Fix compile warnings in virsh vcpupin (Daniel P. Berrange),
  remote generator: Allow to annotate arrays with typecasts (Matthias Bolte),
  remote: Handle functions that return optional strings (Matthias Bolte),
  remote: Generate virDomainGetBlockPullInfo (Matthias Bolte),
  vcpupin: add vcpupin resetting feature to qemu driver (Taku Izumi),
  vcpupin: add virDomainVcpupinDel function (Taku Izumi),
  vcpupin: add reset option to virsh vcpupin command (Taku Izumi),
  vcpupin: improve vcpupin definition of virsh vcpupin (Taku Izumi),
  Fix preprocessor indentation in nodeinfo.c (Matthias Bolte),
  Move XenAPI driver to correct spec file section (Matthias Bolte),
  numatune: Add tests for numatune XML (Osier Yang),
  numatune: Support NUMA memory tuning in qemu driver (Osier Yang),
  numatune: Support persistent XML for numatune (Osier Yang),
  numatune: Define XML schema (Osier Yang),
  Update qemuDomainSetBlkioParameters to use flags (Hu Tao),
  update qemuDomainGetBlkioParameters to use flags (Hu Tao),
  Add new parameters for blkiotune (Hu Tao),
  apparmor: implement AppArmorSetFDLabel() (Jamie Strandboge),
  Add missing error reporting when loading mac filter config for QEMU (Daniel P. Berrange),
  virsh: Add support for virDomainGetControlInfo (Jiri Denemark),
  qemu: Implement virDomainGetControlInfo (Jiri Denemark),
  Wire protocol and remote driver for virDomainGetControlInfo (Jiri Denemark),
  sendkey: use consistent API convention (Eric Blake),
  build: export correct function names (Eric Blake),
  build: avoid compiler warning on non-Linux (Eric Blake),
  remote generator: Handle struct returning functions better (part 2) (Matthias Bolte),
  Fix apibuild.py warnings about missing comment headers (Matthias Bolte),
  remote generator: Handle struct returning functions better (Matthias Bolte),
  support for Xen HVM Viridian (Hyper-V) enlightenment interface (Daniel Gollub),
  virsh: reduce complexity in argv iteration (Eric Blake),
  Add support for network filter code in LXC driver (Daniel P. Berrange),
  qemu: Translate boot config into bootindex if possible (Jiri Denemark),
  spice: add <clipboard copypaste='yes|no'> option (Marc-André Lureau),
  virNodeGetMemoryStats: Implement linux support (Minoru Usui),
  virNodeGetMemoryStats: Implement virsh support (Minoru Usui),
  virNodeGetMemoryStats: Implement remote protocol (Minoru Usui),
  virNodeGetMemoryStats: Implement public API (Minoru Usui),
  virNodeGetMemoryStats: Define internal driver API (Minoru Usui),
  virNodeGetCPUStats: Implement linux support (Minoru Usui),
  virNodeGetCPUStats: Implement virsh support (Minoru Usui),
  virNodeGetCPUStats: Implement remote protocol (Minoru Usui),
  virNodeGetCPUStats: Define internal driver API (Minoru Usui),
  virNodeGetCPUStats: Expose new API (Minoru Usui),
  Fix autostart flag when loading running domains (Michael Chapman),
  send-key: Implementing the remote protocol (Lai Jiangshan),
  send-key: Implementing the public API (Lai Jiangshan),
  send-key: Defining the internal API (Lai Jiangshan),
  remote generator: Handle (unsigned) int arrays (Lai Jiangshan),
  add VSH_OFLAG_REQ_OPT options (Lai Jiangshan),
  allow name for VSH_OT_ARGV options (Lai Jiangshan),
  storage: avoid an intermediate malloc (Eric Blake),
  command: reduce duplicated debug messages (Eric Blake),
  qemu: Scrape stdout for virtio console pty (Cole Robinson),
  virsh: Add daemon version reporting (Michal Privoznik),
  nodeinfo: remove superfluous braces (Guido Günther),
  util: Cleanup indention problem in virterror.c (Osier Yang),
  qemu: Parse current balloon value returned by query_balloon (Osier Yang),
  Deprecate several CURRENT/LIVE/CONFIG enums (Hu Tao),
  qemu: Faster response time to qemu startup errors (Stefan Berger),
  build: update to latest gnulib (Eric Blake),
  vcpupin: add the new option to "virsh vcpupin" command (Taku Izumi),
  vcpupin: implement the remote protocol to address the new API (Taku Izumi),
  vcpupin: implement the code to address the new API in the qemu driver (Taku Izumi),
  Use virTimeMs when appropriate (Jiri Denemark),
  Introduce virTimeMs for getting current time in ms (Jiri Denemark),
  test: Remove unused timeval (Jiri Denemark),
  tests: add a test for multi function PCI device (Wen Congyang),
  the hotplugged PCI device should use the whole slot (Wen Congyang),
  assign the whole slot to the PCI device that has no address (Wen Congyang),
  Reimplement qemuDomainPCIAddressReserveSlot(): reserve all functions in the slot (Wen Congyang),
  the key of hash table should include the function value (Wen Congyang),
  prevent hot unplugging multi function PCI device (Wen Congyang),
  check whether qemu supports multi function PCI device (Wen Congyang),
  xenapi: Improve error message on session failure (Matthew Booth),
  qemu: Fix one type in the error prompt string (Osier Yang),
  Move VMware Workstation/Player driver to correct spec file section (Matthias Bolte),
  esx: avoid dead code (Eric Blake),
  qemu: reorder checks for safety (Eric Blake),
  uuid: annotate non-null requirements (Eric Blake),
  debug: avoid null dereference on uuid lookup api (Eric Blake),
  python: avoid unlikely sign extension bug (Eric Blake),
  build: detect Coverity 5.3.0 (Eric Blake),
  build: Fix typos in configure.ac (Osier Yang),
  virsh: Expose virDomainMigrateSetMaxSpeed API to virsh (Osier Yang),
  lxc: Ensure container <init> actually exists (Cole Robinson),
  lxc: Verify root fs exists before mounting (Cole Robinson),
  lxc: controller: Improve container error reporting (Cole Robinson),
  lxc: Improve guest startup error reporting (Cole Robinson),
  lxc: Refactor controller command building (Cole Robinson),
  lxc: Don't report error in Wait/SendContinue (Cole Robinson),
  lxc: Drop container stdio as late as possible (Cole Robinson),
  util: Implement virRun as a wrapper around virCommand (Cole Robinson),
  qemu: Convert virExec usage to virCommand (Cole Robinson),
  Use VIR_USE_CPU instead of new wheel (Osier Yang),
  Avoid virGetVersion failure on specific driver support configurations (Matthias Bolte)
- Cleanups:
  cgroup: silence coverity warning (Eric Blake),
  rpc: silence coverity warning (Eric Blake),
  qemu: silence coverity warnings (Eric Blake),
  build: avoid 'make syntax-check' failure (Eric Blake),
  build: remove dead variables (Eric Blake),
  Remove bogus jsondata.h file reference which does not exist (Daniel P. Berrange),
  build: ignore generated file (Eric Blake),
  build: Don't expect translatable strings in a dead file (Jiri Denemark),
  Cleanup remote protocol definitions (Daniel P. Berrange),
  Remove obsolete libvirtd mdns code (Daniel P. Berrange),
  build: avoid long line tests (Eric Blake),
  maint: add omitted copyright header (Eric Blake),
  build: break some long lines (Eric Blake),
  build: silence coverity false positives (Eric Blake),
  secret: drop dead code (Eric Blake),
  build: silence coverity false positive (Eric Blake),
  Move virRun, virExec*, virFork to util/command (Cole Robinson),
  util: Remove unused virExec wrapper (Cole Robinson),
  esx: Remove duplicated invalid-argument checks (Matthias Bolte)

### 0.9.2: Jun 06 2011

- Features:
  Framework for lock manager plugins (Daniel P. Berrange),
  API for network config change transactions (Michal Privoznik),
  flags for setting memory parameters (Hu Tao),
  virDomainGetState public API (Jiri Denemark),
  qemu: allow blkstat/blkinfo calls during migration (Federico Simoncelli),
  Introduce migration v3 API (Daniel P. Berrange),
  Defining the Screenshot public API (Michal Privoznik),
  public API for NMI injection (Lai Jiangshan)
- Documentation:
  esx: Fix driver method version annotations (Matthias Bolte),
  vbox: Fix typo in error message (Matthias Bolte),
  virsh: Document nodeinfo output (Jiri Denemark),
  Correct 'cputune' documentation example. (Neil Wilson),
  document iface-* commands (Eric Blake),
  Add initial docs about the lock managers (Daniel P. Berrange),
  maint: use consistent file name for threading notes (Eric Blake),
  Fix virTypedParameter alias comments (Matthias Bolte),
  Fix error syntax of vcpupin example XML (Osier Yang),
  Automatically generate the hvsupport.html.in file from source files (Daniel P. Berrange),
  Fix documentation for cputune parameters (Osier Yang),
  avoid double 'the' (Eric Blake),
  Add documentation about test suites (Daniel Veillard),
  updates to CA cert and client cert/key info (Doug Goldstein),
  node filesystem attr is 'accessmode', not 'mode' (Cole Robinson)
- Portability:
  vbox: Fix version extraction on Windows for newer VirtualBox versions (Matthias Bolte),
  Make dlopen usage in lock manager conditional (Matthias Bolte),
  build: fix VPATH build break from previous patch (Eric Blake),
  Remove call to deprecated gnutls_certificate_type_set_priority (Daniel P. Berrange),
  Fix sysinfo/virsh build problems on Win32 (Daniel P. Berrange),
  Fix build with --with-driver-modules enabled (Matthias Bolte),
  build: fix 'make dist' for ./configure --without-remote (Eric Blake),
  virsh: time_t is not a long on FreeBSD (Matthias Bolte),
  time_t is not a long on FreeBSD, switch internal type to long long (Matthias Bolte),
  build: avoid strerror_r pitfalls (Eric Blake),
  build: fix VIR_DEBUG on mingw (Eric Blake),
  build: generate files when building without libvirtd (Wen Congyang),
  build: drop unused sys/syslimits.h header (Eric Blake),
  Fix prototype of virRun for Win32 targets (Daniel P. Berrange),
  build: tolerate unlimited group size (Eric Blake),
  Disable virCommandExec on Win32 (Daniel P. Berrange),
  command: Fix compilation on FreeBSD (Matthias Bolte),
  apparmor: Fix compilation by removing remains from virCommand conversion (Matthias Bolte),
  configure: Fix mpath check on non-Linux systems (Matthias Bolte),
  fix xdr detection and use with recent glibc (Christophe Fergeau),
  build: avoid gcc preprocessor extensions (Eric Blake),
  build: fix VPATH build with distributed generated files (Eric Blake),
  build: fix VPATH builds (Eric Blake)
- Bug Fixes:
  Fix QEMU p2p v2 migration when run from a v3 client (Daniel P. Berrange),
  Don't raise an error if the migration cookie is NULL (Daniel P. Berrange),
  Fix check of virKillProcess return status (Daniel P. Berrange),
  qemu: Avoid use after free in qemuCaps parsing (Jiri Denemark),
  security driver: ignore EINVAL when chowning an image file (Laine Stump),
  migrate: detect xml incompatibility (Eric Blake),
  event: avoid memory leak on cleanup (Eric Blake),
  qemu: avoid memory leak on vcpupin (Eric Blake),
  remote: avoid leak on failure (Eric Blake),
  lock: avoid leak on failure (Eric Blake),
  storage: avoid memory leak on stat failure (Eric Blake),
  storage: avoid memory leak (Eric Blake),
  libvirtd: avoid leak on failure (Eric Blake),
  command: avoid leak on failure (Eric Blake),
  Explicitly set VM state to paused after migration completes (Daniel P. Berrange),
  Fix regressions BlockStats/Info APIs in QEMU driver (Daniel P. Berrange),
  Fix minor issues in libxenlight managed save (Jim Fehlig),
  Fix auditing of disk hotunplug operations (Daniel P. Berrange),
  Avoid crash on NULL pointer in lock driver impls during hotplug (Daniel P. Berrange),
  Fix return value in lock manager hotplug methods (Daniel P. Berrange),
  Make sure virDomainSave/virDomainManagedSave reset id to -1 (Daniel P. Berrange),
  Fix handling of VIR_EVENT_HANDLE_ERROR in QEMU monitor (Daniel P. Berrange),
  security: plug regression introduced in disk probe logic (Eric Blake),
  Fix order of disks and controllers (Jiri Denemark),
  util: Fix incorrect error in PCI functions (Osier Yang),
  openvz: Restore original EOF handling in openvzGetProcessInfo (Matthias Bolte),
  openvz: Handle getline failures in openvzReadConfigParam properly (Matthias Bolte),
  conf: Fix incorrect spice graphic XML format on compression options (Michal Privoznik),
  nwfilter: reorder locks (Stefan Berger),
  openvz: Fix regression in openvzGetVPSUUID (Matthias Bolte),
  esx: Fix regression in absolute file name handling (Matthias Bolte),
  openvz: Fix regression in config file parsing (Taisuke Yamada),
  audit: fix minor off-by-one (Eric Blake),
  Fix libxl vm def handling on domU cleanup (Markus Groß),
  Fix modifying disk devices in qemu driver (Markus Groß),
  json: Avoid passing large positive 64 bit integers to QMP. (Richard W.M. Jones),
  Fix initialization of current vcpus in libxl driver (Jim Fehlig),
  qemu: Don't change ownership of file when appending to it (Michal Privoznik),
  qemu: fix typo in name - should be VHOST_NET, not VNET_HOST (Laine Stump),
  Fix QEMU -vnc arg generation with raw IPv6 addresses (Daniel P. Berrange),
  Fix peer2peer migration with transient VMs (Daniel P. Berrange),
  python: Don't free must-not-free variables (Michal Privoznik),
  python: Fix typo in bindings (Michal Privoznik),
  libvirt.spec: /var/cache/libvirt should be 0711. (Richard W.M. Jones),
  remote: remove bogus virDomainFree. (Richard W.M. Jones),
  qemudDomainMemoryPeek: change ownership/selinux label on temporary file. (Richard W.M. Jones),
  Fix QEMU migration cookie crash for guests with no graphics (Daniel P. Berrange),
  Blank out the 'listenAddr' parameter if empty string (Daniel P. Berrange),
  Improve invalid argument checks for the public API (Matthias Bolte),
  qemu: fix typo in spice migration code (Michal Privoznik),
  openvz: fix logic bug in previous patch (Eric Blake),
  Fix error reporting in stream creation code (Matthias Bolte),
  virsh: Correctly initialize libvirt (Jiri Denemark),
  Fix leak of mime type string in screenshot dispatcher (Daniel P. Berrange),
  Fix remote dispatcher for screenshot command (Daniel P. Berrange),
  Add missing initialization to 'ret' in qemu migration (Daniel P. Berrange),
  Close all sockets before cancelling QEMU migration (Daniel P. Berrange),
  Ensure we always read a full buffer in tunnelled migration (Daniel P. Berrange),
  phyp: avoid a crash (Eric Blake),
  stream: avoid use-after-free (Eric Blake),
  virsh: Fix uninitialized variable warning (Matthias Bolte),
  libxl: fix typos in previous patch (Eric Blake),
  node_device: avoid null dereference on error (Eric Blake),
  tests: avoid crash when run under gcov (Eric Blake),
  Fix two uninitialized variable warnings (Matthias Bolte),
  apparmor: Fix uninitalized variable warning in virt-aa-helper (Matthias Bolte),
  Fix qemuMigrationToFile nonull annotation (Daniel P. Berrange)
- Improvements:
  API: consolidate common unreleased enums (Eric Blake),
  uml: correct command line networking parameters (Heath Petersen),
  Add call to sanlock_restrict() in QEMU lock driver (Daniel P. Berrange),
  screenshot: Expose the new API in virsh (Michal Privoznik),
  libxl: adds managed save and restore support (Markus Groß),
  libxl: get maximum memory of running domain (Markus Groß),
  Add a plugin for the 'sanlock' project (Daniel P. Berrange),
  Allow leases to be hotpluged with QEMU guests (Daniel P. Berrange),
  Support passing QEMU lock state to dest during migration (Daniel P. Berrange),
  Integrate the QEMU driver with the lock manager infrastructure (Daniel P. Berrange),
  Add higher level lock API for domain objects (Daniel P. Berrange),
  Add a 'nop' lock driver implementation. (Daniel P. Berrange),
  Support leases in guest XML and lock manager (Daniel P. Berrange),
  Allow handshake with child process during startup (Daniel P. Berrange),
  tests: really fix QEMU XML-2-ARGV graphics-spice-timeout test (Eric Blake),
  build: avoid corrupting / in RHEL 5 (Eric Blake),
  tests: Add a test for correct disk device ordering (Jiri Denemark),
  Fix QEMU XML-2-ARGV graphics-spice-timeout test (Matthias Bolte),
  remote generator: Handle some virTypedParameterPtr using functions (Matthias Bolte),
  apibuild: Restrict long usage to existing functions and structs (Matthias Bolte),
  remote generator: Legacy support for hyper to long mappings (Matthias Bolte),
  Use common parameter order for remote(De)SerializeTypedParameters (Matthias Bolte),
  openvz: Add simple test for openvzReadNetworkConf (Matthias Bolte),
  openvz: Set virtType to openvz in openvzLoadDomains (Matthias Bolte),
  storage: List directory volumes for dir/fs/netfs pools (Cole Robinson),
  tests: Add more complex domain scheme test data (Michal Privoznik),
  tests: Test for SPICE compression options (Michal Privoznik),
  Ignore backward compatibility macros in apibuild.py (Matthias Bolte),
  openvz: fix bridge devices parsing in openvzReadNetworkConf() (Jean-Baptiste Rouault),
  Allow custom XML to be passed in during migration (Daniel P. Berrange),
  Allow virsh to pass in a custom XML document for migration (Daniel P. Berrange),
  Add an API for comparing the ABI of two guest configurations (Daniel P. Berrange),
  Remove unused 'target' field in virDomainHostdevDef (Daniel P. Berrange),
  lxc: Seperate domain config loading (Osier Yang),
  openvz: Automatically disable on non-Linux systems (Matthias Bolte),
  Support maximum and current memory flags in libxl driver (Markus Groß),
  Add domainSave/Restore to libxl driver (Markus Groß),
  Add domainCoreDump to libxl driver (Markus Groß),
  Populate domid field of devices for libxenlight (Markus Groß),
  Issue full error messages when processing QEMU monitor I/O (Daniel P. Berrange),
  Don't kill QEMU process when a monitor I/O parsing error occurs (Daniel P. Berrange),
  Introduce a new event emitted when a virtualization failure occurs (Daniel P. Berrange),
  sched: provide new API shims for remaining drivers (Eric Blake),
  virsh: improve schedinfo querying ability (Eric Blake),
  remote: introduce remoteGetSchedulerParametersFlags (Eric Blake),
  qemu: introduce qemuGetSchedulerParametersFlags (Eric Blake),
  sched: introduce virDomainGetSchedulerParametersFlags (Eric Blake),
  remote: consolidate typed parameter handling (Eric Blake),
  maint: prefer newer API names internally (Eric Blake),
  libvirt.h: avoid regression, and document preferred name (Eric Blake),
  Fix virExecWithHook Prototype (Richard Laager),
  interface: reformat error logs (Laine Stump),
  interface: implement a test driver for network config transaction API. (Michal Privoznik),
  interface: Implement driver methods for network config transaction API (Michal Privoznik),
  interface: expose network config transaction API to virsh (Michal Privoznik),
  interface: implement remote protocol for network config transaction API (Michal Privoznik),
  interface: implement public APIs for libvirt transactional network changes (Michal Privoznik),
  interface: define internal driver API for network config transactions (Michal Privoznik),
  sexpr: Improve serialization error reporting (Matthias Bolte),
  qemu: implement the new flags for setting memory parameters (Hu Tao),
  qemu: implement the new flags for getting memory parameters (Hu Tao),
  qemu : support persistent add/delete network interface (KAMEZAWA Hiroyuki),
  openvz: Add simple testcase for config file parsing function (Matthias Bolte),
  Add disk attach/detach support to libxl driver (Markus Groß),
  Refactored libxl datastructure instantiation (Markus Groß),
  schema: Add graphics element passwdValidTo attribute to schema (Michal Privoznik),
  Fix sign mismatches between public API, driver API and XDR protocol (Matthias Bolte),
  remote generator: Fix XDR sign mismatch for virNodeGet(Cells)FreeMemory (Matthias Bolte),
  remote generator: Handle stream-using functions (Matthias Bolte),
  remote generator: Make call-by-reference handling stricter (Matthias Bolte),
  remote generator: Rename virNodeGetCellsFreeMemory parameters to common pattern (Matthias Bolte),
  remote generator: Handle virDomainCreateWithFlags (Matthias Bolte),
  Allow to explicitly disable the secrets a directory storage driver (Matthias Bolte),
  Fix the signature of virDomainMigrateFinish3 for error reporting (Daniel P. Berrange),
  Fix preservation of errors across migration steps (Daniel P. Berrange),
  Improve debug logging of migration APIs (Daniel P. Berrange),
  Fix error propagation in finish method for v3 migration (Daniel P. Berrange),
  Fix SPICE seamless migration hostname (Daniel P. Berrange),
  Fix resume on destination when doing non-live tunnelled migration (Daniel P. Berrange),
  Introduce two method migration APIs (Daniel P. Berrange),
  Add a second URI parameter to virDomainMigratePerform3 method (Daniel P. Berrange),
  Extend v3 migration protocol to allow app supplied XML for target (Daniel P. Berrange),
  esx: Report an error when auth pointer is missing instead of declining (Matthias Bolte),
  Perform feature flag compat checking in QEMU migration cookies (Daniel P. Berrange),
  Replace all remaining setgid/setuid calls with virSetUIDGID (Jiri Denemark),
  util: Keep errno set to the root error after when returning from virSetUIDGID (Jiri Denemark),
  storage: Add comment to picking return value of qemu-img (Michal Privoznik),
  spice: support streaming-video parameter (Alon Levy),
  nwfilter: enable filtering of gratuitous ARP packets (Stefan Berger),
  qemu: don't require is_kvm for vhost-net support (Laine Stump),
  Use per-user TLS certificates when possible (Doug Goldstein),
  storage: pick return value of qemu-img (Michal Privoznik),
  remote generator: Add special case for virConnectGetType (Matthias Bolte),
  remote generator: Don't rely on $_ being stable over a large function (Matthias Bolte),
  build: require newer gettext (Eric Blake),
  virsh: Use Env variables for debug level and logfile (Supriya Kannery),
  Don't generate cookies with v2 migration protocol. (Daniel P. Berrange),
  Ensure p2p and direct migration use the new v3 protocol if available (Daniel P. Berrange),
  remote: remove special case for getting version (Eric Blake),
  virsh: optimize creation of default connection (Eric Blake),
  Clarify that virDomainGet(Memory|Blkio)Parameters doesn't support subsets (Matthias Bolte),
  Clarify that virDomainSet(Memory|Blkio)Parameters can take parameter subsets (Matthias Bolte),
  Clarify that virDomainSetSchedulerParameters(Flags) can take subsets (Matthias Bolte),
  Clarify the semantic of virDomainGetSchedulerParameters arguments (Matthias Bolte),
  Clarify semantic of nparams argument of virDomainGetSchedulerType (Matthias Bolte),
  Fix messages using VIR_ERR_XML_ERROR (Cole Robinson),
  libvirt.h: consolidate typed parameter handling (Eric Blake),
  build: update to latest gnulib (Eric Blake),
  Add support for 'passthru' mode for direct network interfaces (Dirk Herrendorefer),
  virsh: add parameters --live, --config and --current to cmd schedinfo (Hu Tao),
  remote: introduce remoteSetSchedulerParametersFlags (Hu Tao),
  qemu: introduce qemuSetSchedulerParametersFlags (Hu Tao),
  sched: adjust parameter values to make current = 0 (Eric Blake),
  introduce virDomainSetSchedulerParametersFlags (Hu Tao),
  storage_backend: Convert virRunWithHook usage to virCommand (Cole Robinson),
  storage_backend: Fix error reporting with regex helper (Cole Robinson),
  storage: Covert regex helpers to virCommand (Cole Robinson),
  openvz: Convert virExec usage to virCommand (Cole Robinson),
  storage: iscsi: Convert virExec to virCommand (Cole Robinson),
  remote generator, client: Add more special case handling (Matthias Bolte),
  remote generator, client: Handle functions that return an optional string (Matthias Bolte),
  esx: Simplify some esxVI_Boolean to bool (Matthias Bolte),
  esx: Convert autoAnswer from esxVI_Boolean to a simple bool (Matthias Bolte),
  esx: Fix race condition in esxVI_EnsureSession (Matthias Bolte),
  esx: Whitespace cleanup in the generator (Matthias Bolte),
  esx: Change some alignments in the input file (Matthias Bolte),
  esx: Change generated method parameter autobinding (Matthias Bolte),
  virsh: Report an error when virGetUserDirectory fails (Matthias Bolte),
  maint: mark more perl scripts executable (Eric Blake),
  maint: mark perl script executable (Eric Blake),
  maint: ignore generated file (Eric Blake),
  Improve error message when XDR marshalling fails (Daniel P. Berrange),
  Run tunnelled migration IO in separate thread (Daniel P. Berrange),
  Don't overwrite error when stream send fails (Daniel P. Berrange),
  Make tunnelled migration honour resource restriction (Daniel P. Berrange),
  Refactor migration completion loop to allow code reuse (Daniel P. Berrange),
  Implement migration v3 protocol in QEMU driver (Daniel P. Berrange),
  Merge tunnel and non-tunnel migration impl into one (Daniel P. Berrange),
  Fix VM teardown if prepare returns invalid URI in v2 migration (Daniel P. Berrange),
  Refactor tunnelled migration methods (Daniel P. Berrange),
  Wire up SPICE client relocation with QEMU migration (Daniel P. Berrange),
  Pass graphics setup from dst back to src via migration cookies (Daniel P. Berrange),
  Introduce migration cookies to QEMU driver (Daniel P. Berrange),
  Fix locking with qemuMigrationPrepareTunnel method (Daniel P. Berrange),
  Remote driver implementation of new migration API (Daniel P. Berrange),
  Add many version number annotations to drivers (Daniel P. Berrange),
  Convert all driver struct intializers to C99 style (Daniel P. Berrange),
  Tweak driver naming for consistency with public API (Daniel P. Berrange),
  qemu: Update domain state when reconnecting monitor (Jiri Denemark),
  Implement domain state reason (Jiri Denemark),
  Implement basic virDomainGetState in all drivers (Jiri Denemark),
  virsh: Prefer virDomainGetState over virDomainGetInfo (Jiri Denemark),
  Wire protocol format and remote driver for virDomainGetState (Jiri Denemark),
  virDomainGetState public API implementation (Jiri Denemark),
  Internal driver API for virDomainGetState (Jiri Denemark),
  esx: Refactor common code in the generator (Matthias Bolte),
  esx: Improve dynamic cast detection in the generator (Matthias Bolte),
  esx: Improve list usage detection in the generator (Matthias Bolte),
  esx: Remove 1000 lines of generated but unused code (Matthias Bolte),
  esx: Generate implicit _this macros (Matthias Bolte),
  esx: Move the Event type from the VI generator to manually written code (Matthias Bolte),
  test: all test_scripts should be part of tarball when building without libvirtd (Wen Congyang),
  build: probes.d and libvirtd.stp should be part of tarball (Wen Congyang),
  remote: Convert SSH tunnel to virCommand (Cole Robinson),
  storage: Convert qemu-img -help parsing to virCommand (Cole Robinson),
  apparmor: Convert virExec usage to virCommand (Cole Robinson),
  util: Combine __virExec and virExecWithHook (Cole Robinson),
  remote_driver: Convert virExecDaemonize usage to virCommand (Cole Robinson),
  remote: Use virDomainEventState helpers (Cole Robinson),
  libxl: Convert to virDomainEventState (Cole Robinson),
  test: Use virDomainEventState helpers (Cole Robinson),
  lxc: Use virDomainEventState helpers (Cole Robinson),
  qemu: Use virDomainEventState helpers (Cole Robinson),
  domain_event: Add common domain event queue/flush helpers (Cole Robinson),
  domain_event: Add virDomainEventState structure (Cole Robinson),
  xml: Use virXMLParse* helpers everywhere (Cole Robinson),
  domain: Require init node for container guests (Cole Robinson),
  xml: Make sure virXpathNodeSet always sets an error (Cole Robinson),
  vbox: Implement the Screenshot driver methods (Michal Privoznik),
  qemu: Implement the Screenshot driver methods (Michal Privoznik),
  virFDStream: Add option for delete file after it's opening (Michal Privoznik),
  Implementing the Screenshot remote protocol (Michal Privoznik),
  Implementing the Screenshot public API (Michal Privoznik),
  Defining the Screenshot internal API (Michal Privoznik),
  remote generator: Add skipgen/autogen flags to .x files (Matthias Bolte),
  nwfilter: drop unused flag argument (Eric Blake),
  maint: omit translation for all VIR_INFO (Eric Blake),
  build: wrap macro body in one-shot do-while loop (Eric Blake),
  build: drop need for VIR_DOMAIN_DEBUG0() (Eric Blake),
  libvirt,logging: cleanup VIR_XXX0() (Lai Jiangshan),
  maint: avoid a couple of gnulib regressions (Eric Blake),
  build: remove some dead assignments (Eric Blake),
  Allow destroying QEMU VM even if a job is active (Daniel P. Berrange),
  Add support for YAJL version 2 API/ABI (Daniel P. Berrange),
  libxl: support enabling the HPET (Paolo Bonzini),
  libxl: support enabling the HPET (Paolo Bonzini),
  xen: parse and generate hpet item in sxpr (Paolo Bonzini),
  virsh: flexibility in CA cert and user cert/key (Doug Goldstein),
  remote generator: Make parsing stricter (Matthias Bolte),
  remote generator: Unify unsigned int notation in .x files (Matthias Bolte),
  remote generator: Fix comment ignoring regex (Matthias Bolte),
  Rename internal DumpXML functions to GetXMLDesc (Matthias Bolte),
  qemu,inject-nmi: Implement the driver methods (Lai Jiangshan),
  inject-nmi: Expose the new API in virsh (Lai Jiangshan),
  inject-nmi: Implementing the remote protocol (Lai Jiangshan),
  inject-nmi: Implementing the public API (Lai Jiangshan),
  inject-nmi: Defining the internal API (Lai Jiangshan),
  lxc: container: Build init cmd before we close stdout (Cole Robinson),
  lxc: container: Convert init node exec to virCommand (Cole Robinson),
  command: Add virCommandExec helper (Cole Robinson),
  lxc: driver: Improve logging when launching emulator (Cole Robinson),
  lxc: driver: Convert emulator launching to virCommand (Cole Robinson),
  command: Add virCommandEnvAddFormat (Cole Robinson),
  build: translate generated strings (Eric Blake),
  Pull in gnulib fnmatch module (Daniel P. Berrange),
  json: Fix *GetBoolean functions (Jiri Denemark),
  build: rebuild generated files after rpcgen_fix.pl tweak (Eric Blake),
  Re-add libvirt.spec to tarball to allow "make rpm" (Daniel Veillard),
  build: Remove all generated RPC files from GIT (Daniel P. Berrange),
  build: refactor generated RPC files (Daniel P. Berrange),
  build: rename generated files to .h, for automake's sake (Eric Blake),
  remote generator, client: Handle arguments with limited length (Matthias Bolte),
  remote generator, client: Handle functions that return lists (Matthias Bolte),
  remote: Refactor remote*Open and remote*Close functions (Matthias Bolte),
  remote generator, client: Handle functions with optional return values (Matthias Bolte),
  remote generator, client: Handle functions with multiple return values (Matthias Bolte),
  remote generator, client: Handle functions with wrapped return values (Matthias Bolte),
  remote generator, client: Handle functions with simple return values (Matthias Bolte),
  remote generator, client: Handle simple remote driver functions (Matthias Bolte),
  remote generator: Reorder into prepare and print section (Matthias Bolte),
  remote generator, daemon: Handle functions with multiple return values (Matthias Bolte),
  remote generator, daemon: Combine multiple ifs in the generated code (Matthias Bolte),
  remote generator, daemon: Handle the CPU functions (Matthias Bolte),
  remote generator: Refactor duplicate code (Matthias Bolte),
  remote generator, daemon: Handle functions that return lists (Matthias Bolte),
  remote: Rename 'nameslen' to the common 'maxnames' (Matthias Bolte),
  remote generator, daemon: Handle functions with optional arguments (Matthias Bolte),
  remote generator, daemon: Handle more functions (Matthias Bolte),
  remote generator, daemon: Handle simple-return-value functions (Matthias Bolte),
  remote generator, daemon: Change capitalization of some words (Matthias Bolte),
  remote: Replace 'domain' with 'dom' in the XDR protocol (Matthias Bolte),
  remote generator, daemon: Output function bodies too (Matthias Bolte),
  remote generator: Replace tabs with spaces and rename file (Matthias Bolte),
  Balloon dom0 in libxl driver (Markus Groß),
  remote: check actual access to the cert (Doug Goldstein),
  maint: avoid comparisons to bool constants (Eric Blake),
  Add warning message to XML definition files stored on disk (Michal Privoznik),
  Fix security driver handling of FIFOs with QEMU (Daniel P. Berrange),
  Make taint warnings also go into the domain logfile (Daniel P. Berrange),
  Add a qemuDomainAppendLog method for writing to the domain logfile (Daniel P. Berrange),
  Move qemuProcessLogReadFD and qemuProcessLogFD methods (Daniel P. Berrange),
  Log taint warnings in QEMU driver (Daniel P. Berrange),
  Add field to virDomainObjPtr to track "tainting" (Daniel P. Berrange),
  virsh: improve TLS certificate error messages (Doug Goldstein),
  virsh: use new method for easier log to file (Eric Blake),
  buf: add virBufferVasprintf (Eric Blake),
  maint: rename virBufferVSprintf to virBufferAsprintf (Eric Blake),
  Make QEMU migration use cached qemu capabilities data (Daniel P. Berrange),
  Make QEMU hotplug use cached qemu capabilities data (Daniel P. Berrange),
  Persist qemu capabilities in the domain status file (Daniel P. Berrange)
- Cleanups:
  build: silence coverity false positive (Eric Blake),
  build: silence coverity false positive (Eric Blake),
  .gitignore: Exempt a new test binary. (Eric Blake),
  Ensure hvsupport.html.in is built before HTML validation (Daniel P. Berrange),
  Fix a make check error (Daniel Veillard),
  Add sexpr.c to the list of file with translatable messages (Matthias Bolte),
  don't check flags in virDomainSetSchedulerParametersFlags (Hu Tao),
  build: silence clang false positive (Eric Blake),
  Remove obsolete remoteDispatchOOMError method (Daniel P. Berrange),
  remote: keep 'make check' happy (Eric Blake),
  build: avoid compiler warning during configure (Wen Congyang),
  Remove bogus assert() from migration code (Daniel P. Berrange),
  build: drop files generated by config.status from tarball (Eric Blake)

### 0.9.1: May 05 2011

- Features:
  support various persistent domain updates (KAMEZAWA Hiroyuki),
  improvements on memory APIs (Taku Izumi),
  Add virDomainEventRebootNew (Matthias Bolte),
  various improvements to libxl driver (Markus Groß),
  Spice: support audio, images and stream compression (Michal Privoznik)
- Documentation:
  fix missing VLAN id for Qbg example (Gerhard Stenzel),
  docs: Document filesystem tag device (Cole Robinson),
  maint: fix comment typos (Eric Blake),
  Fix two out-of-date comments in LVM backend (Richard Laager),
  docs: Serial and parallel device target ports actually start from 0 (Matthias Bolte),
  maint: fix grammar errors (Eric Blake),
  docs: document freecell --all (Eric Blake),
  docs: remove "returns" word from beginning of lines (Jean-Baptiste Rouault),
  docs: add an IPv6 address to network XML examples (Laine Stump)
- Portability:
  build: fix getcwd portability problems (Eric Blake),
  build: avoid test warnings on mingw (Eric Blake),
  virsh: avoid compiler warning on mingw (Eric Blake),
  build: Use pkg-config for libssh2 check (Jiri Denemark),
  build: Ignore old audit library (Jiri Denemark),
  build: fix 32-bit test failure (Eric Blake),
  build: Fix problem of building Python bindings (Osier Yang),
  build: fix 32-bit test failure (Eric Blake),
  ppc: Enable starting of Qemu VMs on ppc host (Stefan Berger),
  Migrate VMs between different-endianess hosts (Stefan Berger),
  build: really fix mingw startup (Eric Blake),
  build: fix mingw build (Eric Blake),
  do not build libvirt_iohelper when building without libvirtd (Wen Congyang),
  virsh: fix mingw startup (Eric Blake),
  build: avoid compiler warning on cygwin (Eric Blake),
  Fix build for older gcc (Jim Fehlig),
  Don't try to enable stack protector on Win32 (Daniel P. Berrange)
- Bug Fixes:
  storage: avoid null deref and leak on failure (Eric Blake),
  esx: Avoid null dereference on error in esxDomainGetInfo (Matthias Bolte),
  remote: avoid null dereference on error (Eric Blake),
  cgroup: avoid leaking a file (Eric Blake),
  virsh: avoid null pointer dereference (Eric Blake),
  pci: fix null pointer dereference (Eric Blake),
  qemu: avoid null pointer dereference (Eric Blake),
  tests: avoid null pointer dereference (Eric Blake),
  Fix disability to run on systems with no PCI bus (Michal Privoznik),
  virsh: fix regression in log to file (Supriya Kannery),
  nwfilter: Fix memory leak in the ebtables subdriver (Matthias Bolte),
  qemu: Fix qemuDomainModifyDeviceFlags leaking the caps bitmap (Matthias Bolte),
  Fix memory leak in __virExec (Matthias Bolte),
  hash: fix memory leak regression (Eric Blake),
  Xen: Do not generate net ifname if domain is inactive (Jim Fehlig),
  xen: check if device is assigned to guest before reattaching (Yufang Zhang),
  util: Initialize hooks at daemon shutdown if no hooks defined (Osier Yang),
  fix virsh's regression (Wen Congyang),
  release PCI address only when we have ensured it successfully (Wen Congyang),
  free memory properly in cleanup patch (Hu Tao),
  free buf content when vsnprintf() failed (Wen Congyang),
  esx: Fix dynamic dispatch for CastFromAnyType functions (Matthias Bolte),
  Make crash and live flags mutually exclusive in virDomainCoreDump (Mark Wu),
  Fix small memory leaks in config parsing related functions (Matthias Bolte),
  daemon: Don't try to free an unsigned int in error paths (Matthias Bolte),
  Fix QEMU tunnelled migration FD handling (Daniel P. Berrange),
  Remove artificial minimum limit for guest memory (Jiri Denemark),
  fix tunnelled migration's regression (Wen Congyang),
  qemu: fix the check of virDomainObjUnref()'s return value (Wen Congyang),
  Fix checking of return codes in dispatcher (Daniel P. Berrange),
  qemu: avoid qemu_driver being unlocked twice when virThreadPoolNew() failed (Wen Congyang),
  virsh: fix regression in parsing optional integer (Eric Blake),
  phyp: avoid memory leaks in command values (Eric Blake),
  phyp: avoid memory leak on failure (Eric Blake),
  phyp: avoid a logic bug (Eric Blake),
  free cpumask of vcpupinDef (Hu Tao),
  network: Fix NULL dereference during error recovery (Michal Privoznik),
  Add missing checks for QEMU domain state in tunables APIs (Daniel P. Berrange),
  phyp: Fix too small buffer allocation in phypAttachDevice (Matthias Bolte),
  phyp: Don't overwrite error from virDomainDeviceDefParse by OOM error (Matthias Bolte),
  phyp: Don't try to use a string from a failed virAsprintf (Matthias Bolte),
  phyp: Remove stack allocating a 4kb volume key and fix related memory leaks (Matthias Bolte),
  qemu: fix a dead-lock problem (Hu Tao),
  util: Fix crash when removing entries during hash iteration (Jiri Denemark),
  Fix possible infinite loop in remote driver (Michal Privoznik),
  qemu: Remove the managed state file only if restoring succeeded (Osier Yang),
  reattach pci devices when qemuPrepareHostdevPCIDevices() failed (Wen Congyang),
  reattach pci device when pciBindDeviceToStub() failed (Wen Congyang),
  remove devices from driver activePciHostdevs when qemuPrepareHostdevPCIDevices() failed (Wen Congyang),
  pci: avoid invalid free, init path to NULL (Wen Congyang),
  qemu: Support for overriding NPROC limit (Jiri Denemark),
  qemu: Always reserves slot 0x02 for primary VGA. (Osier Yang),
  Fix typo in systemtap tapset directory name (Daniel P. Berrange),
  qemu: Ignore unusable binaries (Jiri Denemark)
- Improvements:
  maint: detect clang 2.9 (Eric Blake),
  qemu: update qemuCgroupControllerActive signature (Eric Blake),
  lxc: report correct error (Eric Blake),
  libxl: avoid compiler warning (Eric Blake),
  storage: use virCommand to avoid compiler warning (Eric Blake),
  tests: Lower stack usage below 4096 bytes (Matthias Bolte),
  tests: Update valgrind suppressions file (Matthias Bolte),
  tests: simplify common setup (Eric Blake),
  network: fix return value of hostsFileWrite (Laine Stump),
  libvirt/qemu - support persistent attach/detach disks (KAMEZAWA Hiroyuki),
  libvirt/qemu - support persistent modification of devices (KAMEZAWA Hiroyuki),
  util: Simplify hash implementation (Jiri Denemark),
  tests: More unit tests for internal hash APIs (Jiri Denemark),
  Move call to virReportOOMError into virFileBuildPath (Matthias Bolte),
  build: use gnulib passfd for simpler SCM_RIGHTS code (Eric Blake),
  qemu: Add flags checking in DomainCoreDump (Jiri Denemark),
  Make sure DNSMASQ_STATE_DIR exists (Guido Günther),
  build: make VIR_FREE do some type checking (Eric Blake),
  threads: add one-time initialization support (Eric Blake),
  esx: Add a wrapper for shared CURL handles (Matthias Bolte),
  esx: Move CURL handling code to it's own type (Matthias Bolte),
  daemon: Honor error variable name change in the generator (Matthias Bolte),
  libvirt/qemu - clean up UpdateDevice for consolidation. (KAMEZAWA Hiroyuki),
  libvirt/qemu - clean up At(De)tachDeviceFlags() for consolidation. (KAMEZAWA Hiroyuki),
  libvirt/qemu - Centralize device modification in the more flexible APIs (KAMEZAWA Hiroyuki),
  Add support for s390(x) cpu options parsing (Michal Privoznik),
  PHYP: Adding reboot domain function (Eduardo Otubo),
  nwfilter: no support for direct type of interface (Stefan Berger),
  Add cputune support to libxl driver (Markus Groß),
  Update and sort msg_gen_function list and mark unmarked messages (Matthias Bolte),
  Write error check conditionals in more compact form for dispatcher (Daniel P. Berrange),
  Merge all returns paths from dispatcher into single path (Daniel P. Berrange),
  Experimental libvirtd upstart job (Alan Pevec),
  enhance processWatchdogEvent() (Wen Congyang),
  xen: Replace statsErrorFunc with a macro (Matthias Bolte),
  tests: Unit tests for internal hash APIs (Jiri Denemark),
  build: include esx_vi.generated.* into dist file (Wen Congyang),
  tests: test recent virsh option parsing changes (Eric Blake),
  virsh: list required options first (Eric Blake),
  phyp: use consistent return string handling (Eric Blake),
  maint: use lighter-weight function for straight appends (Eric Blake),
  libvirt-guests: implement START_DELAY (Alexander Todorov),
  network: truncate bridges' dummy tap device names to IFNAMSIZ (15) chars (Laine Stump),
  Introduce virDomainChrDefNew() (Michal Novotny),
  esx: Make the parsed URI part of the private connection data (Matthias Bolte),
  esx: Mark error message in macros for translation (Matthias Bolte),
  esx: Extend VI generator to cover managed object types (Matthias Bolte),
  esx: Cleanup and refactor CastFromAnyType macros (Matthias Bolte),
  esx: Cleanup VI generator code (Matthias Bolte),
  phyp: Reduce code duplication in error and success paths (Matthias Bolte),
  Replace REMOTE_DEBUG with VIR_DEBUG in daemon dispatcher (Daniel P. Berrange),
  Add missing checks for whether the connection is open in dispatcher (Daniel P. Berrange),
  PHYP: Adding network interface (Eduardo Otubo),
  xen: Remove PATH_MAX sized stack allocation from block stats code (Matthias Bolte),
  setmaxmem: add the new options to "virsh setmaxmem" command (Taku Izumi),
  maxmem: implement virDomainSetMaxMemory API of the qemu driver (Taku Izumi),
  maxmem: introduces VIR_DOMAIN_MEM_MAXIMUM flag (Taku Izumi),
  nwfilters: support for TCP flags evaluation (Stefan Berger),
  setmem: add --current option to virsh setmem command (Taku Izumi),
  setmem: add VIR_DOMAIN_MEM_CURRENT support to qemu (Taku Izumi),
  setmem: introduce VIR_DOMAIN_MEM_CURRENT flag (Taku Izumi),
  build: Install libxenlight log dir (Jim Fehlig),
  Add domainSet/GetSchedulerParameters to libxl driver (Markus Groß),
  rename pciUnBindDeviceFromStub() to pciUnbindDeviceFromStub() and float it up (Wen Congyang),
  Add domainIsUpdated to libxl driver (Markus Groß),
  Change locking for udev monitor and callbacks (Serge Hallyn),
  Improve SCSI volume key generation (Daniel P. Berrange),
  qemu: Rewrite LOOKUP_PTYS macro into a function (Jiri Denemark),
  Enable use of -Wold-style-definition compiler flag (Daniel P. Berrange),
  Enable use of -Wmissing-noreturn (Daniel P. Berrange),
  Enable -Wmissing-format-attribute warning (Daniel P. Berrange),
  Use gnulib's manywarnings and warnings modules (Daniel P. Berrange),
  Use virBufferPtr for sexpr2string instead of manual buffer handling (Matthias Bolte),
  xend: Remove 4kb stack allocation (Matthias Bolte),
  uml: Remove PATH_MAX sized stack allocation from /proc parsing code (Matthias Bolte),
  storage: Remove PATH_MAX sized stack allocation from iSCSI backend (Matthias Bolte),
  qemu: Remove PATH_MAX sized stack allocation used in commandline building (Matthias Bolte),
  Remove PATH_MAX sized stack allocation from virFileOpenTtyAt (Matthias Bolte),
  openvz: Remove several larger stack allocations (Matthias Bolte),
  daemon: Remove 4kb stack allocation of security label (Matthias Bolte),
  virsh: Remove two 4kb stack allocations (Matthias Bolte),
  Use virFileAbsPath instead of manually creating the absolute path (Matthias Bolte),
  xenxs: Remove PATH_MAX sized stack allocation in XM script parsing (Matthias Bolte),
  sasl: Remove stack allocated 8kb temporary buffers (Matthias Bolte),
  qemu: Use heap allocated memory to read the monitor greeting (Matthias Bolte),
  phyp: Remove 16kb stack allocation (Matthias Bolte),
  virt-aa-helper: Remove PATH_MAX sized stack allocations (Matthias Bolte),
  ebtables: Remove PATH_MAX sized stack allocation (Matthias Bolte),
  pci: Remove PATH_MAX sized stack allocations (Matthias Bolte),
  Remove PATH_MAX sized stack allocations related to virFileBuildPath (Matthias Bolte),
  vmx: Use case-insensitive compare functions for all content (Matthias Bolte),
  vmx: Support persistent CPU shares (Matthias Bolte),
  Add autostart support to libxl driver (Markus Groß),
  Allow relative path for qemu backing file (Jesse Cook),
  build: detect potentential uninitialized variables (Eric Blake)
- Cleanups:
  esx: Disable performance counter queries in esxDomainGetInfo (Matthias Bolte),
  esx: Remove dead store in esxUtil_ParseDatastorePath (Matthias Bolte),
  util: remove dead assignment (Eric Blake),
  qemu: remove dead assignment (Eric Blake),
  qemu: silence clang false positives (Eric Blake),
  tests: suppress more valgrind situations (Eric Blake),
  tests: avoid compiler warning (Eric Blake),
  qemu: fix uninitialized variable warning (Christophe Fergeau),
  build: fix syntax-check failure (Eric Blake),
  virsh: nuke use of TRUE and FALSE (Eric Blake),
  phyp: another simplification (Eric Blake),
  maint: ignore built file (Eric Blake),
  Change some variable names to follow standard in daemon dispatcher (Daniel P. Berrange),
  Remove curly braces on all single-line conditional jumps in dispatcher (Daniel P. Berrange),
  Remove virConnectPtr from virRaiseErrorFull (Matthias Bolte),
  phyp: prefer memcpy over memmove when legal (Eric Blake),
  phyp: use consistent style for labels (Eric Blake),
  phyp: more return handling cleanup (Eric Blake),
  esx: Fix gcc 4.6 warning about initialized but unused variables (Matthias Bolte),
  maint: silence cppi warnings (Eric Blake),
  Fix gcc 4.6 warnings in vbox_tmpl.c (Christophe Fergeau),
  Fix gcc 4.6 warnings (Christophe Fergeau),
  Remove C99 variable declare in PHYP network driver (Daniel P. Berrange),
  Standard on error variable name in libvirtd dispatcher (Daniel P. Berrange),
  Remove all whitespace before function brackets in daemon dispatcher (Daniel P. Berrange),
  docs: tweak virsh restore warning (Eric Blake),
  setmaxmem: remove the code to invoke virDomainSetMemory in cmdSetmaxmem (Taku Izumi),
  build: fix gitignore sorting (Eric Blake),
  tests: fix recent test failures (Eric Blake),
  libxl: avoid compiler warning (Eric Blake),
  Avoid compiler warnings about int to void * casts (Daniel P. Berrange),
  Remove acinclude.m4 file (Daniel P. Berrange),
  Remove possible uninitialized variable in openvz driver (Daniel P. Berrange)

### 0.9.0: Apr 04 2011

- Features:
  Support cputune cpu usage tuning (Osier Yang and Nikunj A. Dadhania),
  Add public APIs for storage volume upload/download (Daniel P. Berrange),
  Add public API for setting migration speed on the fly (Daniel P. Berrange),
  Add libxenlight driver (Jim Fehlig and Markus Groß),
  qemu: support migration to fd (Eric Blake),
  libvirt: add virDomain{Get,Set}BlkioParameters (Gui Jianfeng),
  setmem: introduce a new libvirt API (virDomainSetMemoryFlags) (Taku Izumi),
  Expose event loop implementation as a public API (Daniel P. Berrange),
  Dump the debug buffer to libvirtd.log on fatal signal (Daniel Veillard),
  Audit support (Eric Blake)
- Documentation:
  fix typo (Eric Blake),
  correct invalid xml (Eric Blake),
  virsh: Fix documentation for memtune command (Jiri Denemark),
  Fix several formatting mistakes in doc (Michal Privoznik),
  mention C89 syntax preferences (Eric Blake),
  document recent hook additions (Eric Blake),
  Update on the goal page (Daniel Veillard),
  Document first release with spice and qxl (Cole Robinson),
  Add schema definition for imagelabel (Osier Yang),
  update virGetVersion description (Tiziano Mueller),
  Improve logging documentation including the debug buffer (Daniel Veillard),
  update windows page for initial libvirt 0.8.8 installer (Justin Clift),
  formatdomain.html.in: Fix spelling PIC->PCI (Philipp Hahn),
  fix missing <p> (Eric Blake),
  documenting the 802.1Qbg parameters of a 'direct' interface (Gerhard Stenzel),
  silence warnings about generated API docs (Eric Blake),
  document <driver name='vhost'/> for interfaces (Eric Blake),
  correct range of default NAT subnet (Eric Blake),
  formatdomain: Add release info for disk <driver> attributes (Cole Robinson),
  Fix spelling mistake: seek (Philipp Hahn),
  maint: fix grammar in error message (Eric Blake)
- Portability:
  virsh: fix mingw failure on creating nonblocking pipe (Eric Blake),
  Remove iohelper on Win32 since it is not required (Daniel P. Berrange),
  Fix domain events C example on Win32 (Daniel P. Berrange),
  build: fix compilation on mingw (Eric Blake),
  util: use SCM_RIGHTS in virFileOperation when needed (Eric Blake),
  Don't use INT64_MAX in libvirt.h because it requires stdint.h (Matthias Bolte),
  libvirtd: Remove indirect linking (Guido Günther),
  build: avoid compiler warning on cygwin (Eric Blake),
  build: fix build on cygwin (Eric Blake),
  build: fix building error when building without libvirtd (Wen Congyang),
  virsh: Remove indirect link against libxml2 (Guido Günther),
  Fix build on cygwin (Daniel Veillard),
  Add check for kill() to fix build of cgroups on win32 (Daniel P. Berrange),
  build: fix broken mingw cross-compilation (Eric Blake)
- Bug Fixes:
  fix memory leak in qemuProcessHandleGraphics() (Wen Congyang),
  do not lock vm while allocating memory (Wen Congyang),
  Fix libxl driver startup (Daniel Veillard),
  qemu: Ignore libvirt debug messages in qemu log (Jiri Denemark),
  qemu: Fix improper logic of qemuCgroupSetup (Osier Yang),
  free tmp after unlinking it (Wen Congyang),
  qemu: Fix media eject with qemu-0.12.* (Jiri Denemark),
  check whether qemuMonitorJSONHMP() failed (Wen Congyang),
  do not send monitor command after monitor meet error (Wen Congyang),
  qemu: unlock qemu driver before return from domain save (Hu Tao),
  qemu: fix regression with fd labeling on migration (Eric Blake),
  Ignore return value of virDomainObjUnref (Markus Groß),
  Fix infinite loop in daemon if client quits with multiple streams open (Daniel P. Berrange),
  qemu: fix regression that hangs on save failure (Eric Blake),
  qemu: fix restoring a compressed save image (Eric Blake),
  util: allow clearing cloexec bit (Eric Blake),
  logging: always NUL-terminate circular buffer (Eric Blake),
  tests: don't alter state in $HOME (Eric Blake),
  qemu: don't restore state label twice (Eric Blake),
  Fix syntax error in configure.ac (Osier Yang),
  remote: Don't leak gnutls session on negotiation error (Matthias Bolte),
  hooks: fix regression in previous patch (Eric Blake),
  Add missing { for qemudDomainInterfaceStats (Philipp Hahn),
  daemon: Avoid resetting errors before they are reported (Jiri Denemark),
  fix the check of the output of monitor command 'device_add' (Wen Congyang),
  Make error reporting in libvirtd thread safe (Jiri Denemark),
  update domain status forcibly even if attach a device failed (Wen Congyang),
  util: Fix return value for virJSONValueFromString if it fails (Osier Yang),
  Initialization error of qemuCgroupData in Qemu host usb hotplug (Wen Congyang),
  build: fix missing initializer (Eric Blake),
  Fix uninitialized variable & error reporting in LXC veth setup (Daniel P. Berrange),
  udev: fix regression with qemu:///session (Eric Blake),
  logging: fix off-by-one bug (Eric Blake),
  do not report OOM error when prepareCall() failed (Wen Congyang),
  Don't return an error on failure to create blkio controller (Hu Tao),
  qemu: respect locking rules (Eric Blake),
  openvz: fix a simple bug in openvzListDefinedDomains() (Jean-Baptiste Rouault),
  Fix delayed event delivery when SASL is active (Daniel P. Berrange),
  qemu: Fix copy&paste error messages in text monitor (Jiri Denemark),
  do not unref obj in qemuDomainObjExitMonitor* (Wen Congyang),
  qemu: check driver name while attaching disk (Wen Congyang),
  remote: Add missing virCondDestroy calls (Matthias Bolte),
  build: improve rpm generation for distro backports (Eric Blake),
  storage: Fix a problem which will cause libvirtd crashed (Osier Yang),
  Fix misc bugs in virCommandPtr (Daniel P. Berrange),
  libvirt: fix a simple bug in virDomainSetMemoryFlags() (Taku Izumi),
  qemu: Check the unsigned integer overflow (Osier Yang),
  audit: eliminate potential null pointer deref when auditing macvtap devices (Laine Stump),
  network driver: don't send default route to clients on isolated networks (Laine Stump),
  virsh: Free stream when shutdown console (Osier Yang),
  Add missing checks for read only connections (Guido Günther),
  qemu: fix -global argument usage (Eric Blake),
  Make sure we reset the umask on the error path (Guido Günther),
  qemu: Stop guest CPUs before creating a snapshot (Jiri Denemark),
  qemu: Escape snapshot name passed to {save,load,del}vm (Jiri Denemark),
  qemu: Fix warnings in event handlers (Jiri Denemark),
  storage: Update qemu-img flag checking (Osier Yang),
  Make sure the rundir is accessible by the user (Guido Günther),
  Fix a wrong error message thrown to user (Hu Tao),
  unlock eventLoop before calling callback function (Wen Congyang),
  fixes for several memory leaks (Phil Petty),
  Fix a counter bug in the log buffer (Daniel Veillard),
  qemu: avoid corruption of domain hashtable and misuse of freed domains (Laine Stump),
  qemu: Add missing lock of virDomainObj before calling virDomainUnref (Laine Stump),
  esx: Escape password for XML (Matthias Bolte),
  util: correct retry path in virFileOperation (Eric Blake),
  util: Allow removing hash entries in virHashForEach (Jiri Denemark),
  qemu: avoid double close on domain restore (Eric Blake),
  Fix port value parsing for serial and parallel ports (Michal Novotny),
  Fix off-by-1 in virFileAbsPath. (Daniel P. Berrange),
  security: avoid memory leak (Eric Blake),
  protect the scsi controller to be deleted when it is in use (Wen Congyang),
  virsh: freecell --all getting wrong NUMA nodes count (Michal Privoznik),
  remove duplicated call to reportOOMError (Christophe Fergeau)
- Improvements:
  Make check_fc_host() and check_vport_capable() usable as rvalues (Guido Günther),
  maint: avoid locale-sensitivity in string case comparisons (Eric Blake),
  extend logging to record configuration-related changes (Naoya Horiguchi),
  Add libvirt_iohelper to spec file (Daniel Veillard),
  cputune: New tests for cputune XML (Osier Yang),
  cputune: Support cputune for xend driver (Osier Yang),
  cputune: Support cputune for lxc driver (Osier Yang),
  cputune: Support cputune for qemu driver (Osier Yang),
  cputune: Implementations of parsing and formating cputune xml (Osier Yang),
  cputune: Add data structures presenting cputune XML (Osier Yang),
  cputune: Add document for cputune XML (Osier Yang),
  cputune: Add XML schema for cputune xml (Osier Yang),
  qemu: improve error message on failed fd transfer (Eric Blake),
  maint: ignore new built file (Eric Blake),
  Add domainSuspend/Resume to libxl driver (Markus Groß),
  Add domainGetOSType to libxl driver (Markus Groß),
  Add domainGetSchedulerType to libxl driver (Markus Groß),
  Implements domainXMLTo/FromNative in libxl driver (Markus Groß),
  Add vcpu functions to libxl driver (Markus Groß),
  List authors in copyright headers (Markus Groß),
  Add event callbacks to libxl driver (Markus Groß),
  Remote protocol support for storage vol upload/download APIs (Daniel P. Berrange),
  Support volume data upload/download APIs in storage driver (Daniel P. Berrange),
  Add vol-upload and vol-download commands to virsh (Daniel P. Berrange),
  Enhance the streams helper to support plain file I/O (Daniel P. Berrange),
  Update event loop example programs to demonstrate best practice (Daniel P. Berrange),
  qemu: support fd: migration with compression (Eric Blake),
  qemu: skip granting access during fd migration (Eric Blake),
  qemu: consolidate migration to file code (Eric Blake),
  qemu: use common API for reading difficult files (Eric Blake),
  qemu, storage: improve type safety (Eric Blake),
  util: adjust indentation in previous patch (Eric Blake),
  util: rename virFileOperation to virFileOpenAs (Eric Blake),
  storage: simplify fd handling (Eric Blake),
  qemu: simplify domain save fd handling (Eric Blake),
  qemu: allow simple domain save to use fd: protocol (Eric Blake),
  Update of localisations, switch to transifex (Daniel Veillard),
  build: shorten libxenlight summary for consistent alignment (Eric Blake),
  command: add virCommandAbort for cleanup paths (Eric Blake),
  command: don't mix RunAsync and daemons (Eric Blake),
  command: properly diagnose process exit via signal (Eric Blake),
  Add memory functions to libxl driver (Markus Groß),
  build: enforce reference count checking (Eric Blake),
  maint: prohibit access(,X_OK) (Eric Blake),
  Get cpu time and current memory balloon from libxl (Markus Groß),
  build: nuke all .x-sc* files, and fix VPATH syntax-check (Eric Blake),
  command: reject pidfile on non-daemon (Eric Blake),
  rpm: add missing dependencies (Eric Blake),
  rpm: separate runtime and build requirements (Eric Blake),
  qemu: simplify monitor callbacks (Eric Blake),
  8021Qbh: use preassociate-rr during the migration prepare stage (Roopa Prabhu),
  Wire up virDomainMigrateSetSpeed into QEMU driver (Daniel P. Berrange),
  Wire up virDomainMigrateSetSpeed for the remote RPC driver (Daniel P. Berrange),
  maint: update authors (Eric Blake),
  Disable libxl build in RPM on Fedora < 16 (Daniel P. Berrange),
  qemu: fallback to HMP drive_add/drive_del (Hu Tao),
  qemu: Only use HMP passthrough if it is supported (Jiri Denemark),
  qemu: Detect support for HMP passthrough (Jiri Denemark),
  qemu: add two hook script events "prepare" and "release" (Thibault Vincent),
  qemu: simplify interface fd handling in monitor (Eric Blake),
  qemu: simplify PCI configfd handling in monitor (Eric Blake),
  qemu: simplify monitor fd error handling (Eric Blake),
  util: guarantee sane errno in virFileIsExecutable (Eric Blake),
  Don't build libxenlight driver for Xen 4.0 (Jim Fehlig),
  network driver: log error and abort network startup when radvd isn't found (Laine Stump),
  build: translate changes in previous patch (Eric Blake),
  Ensure binary is resolved wrt $PATH in virExec (Daniel P. Berrange),
  util: Forbid calling hash APIs from iterator callback (Jiri Denemark),
  Avoid taking lock in libvirt debug dump (Daniel Veillard),
  unlock the monitor when unwatching the monitor (Wen Congyang),
  Add vim configuration that makes vim auto-indent code (Hu Tao),
  virsh: fix memtune's help message for swap_hard_limit (Nikunj A. Dadhania),
  Add PCI sysfs reset access (Alex Williamson),
  Support Xen sysctl v8, domctl v7 (Jim Fehlig),
  macvtap: log an error if on failure to connect to netlink socket (Laine Stump),
  qemu: improve efficiency of dd during snapshots (Eric Blake),
  virsh: allow empty string arguments (Eric Blake),
  qemu: Fallback to HMP when cpu_set QMP command is not found (Wen Congyang),
  Change message for VIR_FROM_RPC error domain (Daniel P. Berrange),
  Add compat function for geteuid() (Daniel P. Berrange),
  Add virSetBlocking() to allow O_NONBLOCK to be toggle on or off (Daniel P. Berrange),
  qemu: use more appropriate error (Eric Blake),
  Make LXC container startup/shutdown/I/O more robust (Daniel P. Berrange),
  Allow to dynamically set the size of the debug buffer (Daniel Veillard),
  qemu: consolidate duplicated monitor migration code (Eric Blake),
  qemu: use lighter-weight fd:n on incoming tunneled migration (Eric Blake),
  Fix performance problem of virStorageVolCreateXMLFrom() (Minoru Usui),
  libvirt-guests: avoid globbing when splitting $URIS (Eric Blake),
  libvirt-guest.init: quoting variables (Philipp Hahn),
  virsh: Insert error messages to avoid a quiet abortion of commands (Michal Privoznik),
  python: Use hardcoded python path in libvirt.py (Jiri Denemark),
  virsh: Allow starting domains by UUID (Jiri Denemark),
  network driver: Use a separate dhcp leases file for each network (Laine Stump),
  network driver: Start dnsmasq even if no dhcp ranges/hosts are specified. (Laine Stump),
  libvirt-guest.init: handle domain name with spaces (Philipp Hahn),
  domain.rng vs. formatdomain.html#elementsUSB (Philipp Hahn),
  Ignore backing file errors in FS storage pool (Philipp Hahn),
  remote-protocol: implement new BlkioParameters API (Gui Jianfeng),
  virsh: Adding blkiotune command to virsh tool (Gui Jianfeng),
  qemu: implement new BlkioParameters API (Gui Jianfeng),
  libvirt: implements virDomain{Get,Set}BlkioParameters (Gui Jianfeng),
  setmem: add the new options to "virsh setmem" command (Taku Izumi),
  setmem: implement the remote protocol to address the new API (Taku Izumi),
  setmem: implement the code to address the new API in the qemu driver (Taku Izumi),
  audit: audit use of /dev/net/tun, /dev/tapN, /dev/vhost-net (Eric Blake),
  qemu: don't request cgroup ACL access for /dev/net/tun (Eric Blake),
  qemu: support vhost in attach-interface (Eric Blake),
  qemu: Refactor qemuDomainSnapshotCreateXML (Jiri Denemark),
  qemu: Fallback to HMP for snapshot commands (Jiri Denemark),
  qemu: Setup infrastructure for HMP passthrough (Jiri Denemark),
  qemu: Replace deprecated option of qemu-img (Osier Yang),
  audit: also audit cgroup ACL permissions (Eric Blake),
  cgroup: allow fine-tuning of device ACL permissions (Eric Blake),
  audit: rename remaining qemu audit functions (Eric Blake),
  audit: also audit cgroup controller path (Eric Blake),
  audit: split cgroup audit types to allow more information (Eric Blake),
  audit: tweak audit messages to match conventions (Eric Blake),
  Don't overwrite virRun error messages (Cole Robinson),
  virsh: Change option parsing functions to return tri-state information (Michal Privoznik),
  virsh: change vshCommandOptString return type and fix const-correctness (Michal Privoznik),
  support to detach USB disk (Wen Congyang),
  rename qemuDomainDetachSCSIDiskDevice to qemuDomainDetachDiskDevice (Wen Congyang),
  qemu_hotplug: Reword error if spice password change not available (Cole Robinson),
  Move event code out of the daemon/ into src/util/ (Daniel P. Berrange),
  Convert daemon/virsh over to use primary event APIs, rather than impl (Daniel P. Berrange),
  Cleaning up some of the logging code (Daniel Veillard),
  qemu: Support vram for video of qxl type (Osier Yang),
  Add an an internal API for emergency dump of debug buffer (Daniel Veillard),
  Add logrotate support for libvirtd.log (Daniel Veillard),
  Change default log policy to libvirtd.log instead of syslog (Daniel Veillard),
  Force all logs to go to the round robbin memory buffer (Daniel Veillard),
  AUTHORS: adjust to preferred spelling (KAMEZAWA Hiroyuki),
  Pass virSecurityManagerPtr to virSecurityDAC{Set, Restore}ChardevCallback (Soren Hansen),
  maint: update to latest gnulib (Eric Blake),
  Attempt to improve an error message (Daniel P. Berrange),
  add additional event debug points (Daniel P. Berrange),
  qemu: only request sound cgroup ACL when required (Eric Blake),
  Add support for multiple serial ports into the Xen driver (Michal Novotny),
  Add APIs for killing off processes inside a cgroup (Daniel P. Berrange),
  Allow hash tables to use generic pointers as keys (Daniel P. Berrange),
  Remove deallocator parameter from hash functions (Daniel P. Berrange),
  Make commandtest more robust wrt its execution environment (Daniel P. Berrange),
  audit: audit qemu pci and usb device passthrough (Eric Blake),
  audit: audit qemu memory and vcpu adjustments (Eric Blake),
  audit: add qemu hooks for auditing cgroup events (Eric Blake),
  audit: prepare qemu for listing vm in cgroup audits (Eric Blake),
  cgroup: determine when skipping non-devices (Eric Blake),
  virExec: avoid uninitialized memory usage (Eric Blake),
  Allow 32-on-64 execution for LXC guests (Daniel P. Berrange),
  Put <stdbool.h> into internal.h so it is available everywhere (Daniel P. Berrange),
  qemu: Switch over command line capabilities to virBitmap (Jiri Denemark),
  qemu: Rename qemud\?CmdFlags to qemuCaps (Jiri Denemark),
  qemu: Use helper functions for handling cmd line capabilities (Jiri Denemark),
  qemu: Rename QEMUD_CMD_FLAG_* to QEMU_CAPS_* (Jiri Denemark),
  util: Add API for converting virBitmap into printable string (Jiri Denemark),
  util: Use unsigned long as a base type for virBitmap (Jiri Denemark),
  Expose name + UUID to LXC containers via env variables (Daniel P. Berrange),
  Fix discard of expected errors (Daniel P. Berrange),
  Fix group/mode for /dev/pts inside LXC container (Daniel P. Berrange),
  802.1Qbh: Delay IFF_UP'ing interface until migration final stage (Roopa Prabhu),
  storage: make debug log more useful (Osier Yang),
  virsh: replace vshPrint with vshPrintExtra for snapshot list Otherwise extra information will be printed even if "--quiet" is specified. (Osier Yang),
  check device-mapper when building with mpath or disk storage driver (Wen Congyang),
  build: add dependency on gnutls-utils (Eric Blake),
  Renamed functions in xenxs (Markus Groß),
  Moved XM formatting functions to xenxs (Markus Groß),
  Moved XM parsing functions to xenxs (Markus Groß),
  Moved SEXPR formatting functions to xenxs (Markus Groß),
  Moved SEXPR parsing functions to xenxs (Markus Groß),
  Moved some SEXPR functions from xen-unified (Markus Groß),
  Moved SEXPR unit to utils (Markus Groß),
  virt-*-validate.in: quote all variable references (Dan Kenigsberg),
  virt-pki-validate: behave when CERTTOOL is missing (Dan Kenigsberg),
  autobuild.sh: use VPATH build (Eric Blake),
  maint: fix 'make dist' in VPATH build (Eric Blake),
  build: don't require pod2man for tarball builds (Eric Blake),
  hash: make virHashFree more free-like (Eric Blake),
  build: Fix API docs generation in VPATH build (Jiri Denemark),
  Remove all object hashtable caches from virConnectPtr (Daniel P. Berrange),
  nwfilter: enable rejection of packets (Stefan Berger),
  Drop empty argument from dnsmasq call (Guido Günther),
  esx: Ignore malformed host UUID from BIOS (Matthias Bolte),
  build: speed up non-maintainer builds (Eric Blake),
  build: recompute symbols after changing configure options (Eric Blake),
  Requires gettext for client package (Osier Yang),
  Do not add drive 'boot=on' param when a kernel is specified (Jim Fehlig),
  factor common code in virHashAddEntry and virHashUpdateEntry (Christophe Fergeau),
  add hash table rebalancing in virHashUpdateEntry (Christophe Fergeau),
  hash: modernize debug code (Eric Blake),
  build: improve 'make install' for VPATH builds (Eric Blake),
  check more error info about whether drive_add failed (Wen Congyang),
  logging: make VIR_ERROR and friends preserve errno (Eric Blake),
  maint: avoid 'make syntax-check' from tarball (Eric Blake),
  Give each virtual network bridge its own fixed MAC address (Laine Stump),
  Allow brAddTap to create a tap device that is down (Laine Stump),
  Add txmode attribute to interface XML for virtio backend (Laine Stump),
  Restructure domain struct interface "driver" data for easier expansion (Laine Stump),
  build: Fix VPATH build (Jiri Denemark),
  storage: Allow to delete device mapper disk partition (Osier Yang)
- Cleanups:
  The next release is 0.9.0 not 0.8.9 (Daniel Veillard),
  maint: use space, not tab, in remote_protocol-structs (Eric Blake),
  Remove the Open Nebula driver (Daniel P. Berrange),
  domain_conf: drop unused ref-count in snapshot object (Eric Blake),
  Update the set of maintainers for the project (Daniel Veillard),
  Make virDomainObjParseNode() static (Hu Tao),
  maint: make spacing in .sh files easier (Eric Blake),
  network driver: Fix indentation from previous commit (Laine Stump),
  qemu: Rename qemuMonitorCommandWithHandler as qemuMonitorText* (Jiri Denemark),
  qemu: Rename qemuMonitorCommand{,WithFd} as qemuMonitorHMP* (Jiri Denemark),
  maint: avoid long lines in more tests (Eric Blake),
  maint: kill all remaining uses of old DEBUG macro (Eric Blake),
  maint: Expand tabs in python code (Jiri Denemark),
  remove space between function name and ( (Christophe Fergeau),
  don't check for NULL before calling virHashFree (Christophe Fergeau),
  remove no longer needed calls to virReportOOMError (Christophe Fergeau),
  Move all the QEMU migration code to a new file (Daniel P. Berrange),
  Split all QEMU process management code into separate file (Daniel P. Berrange)

### 0.8.8: Feb 17 2011

- Features:
  sysinfo: expose new API (Eric Blake),
  cgroup blkio weight support. (Gui Jianfeng),
  smartcard device support (Eric Blake),
  qemu: Support per-device boot ordering (Jiri Denemark)
- Documentation:
  docs: fix typos (Eric Blake),
  docs: added link for nimbus to apps page (Justin Clift),
  Update src/README (Matthias Bolte),
  docs: Add information about libvirt-php new location (Michal Novotny),
  Add libvirt-php information page (Michal Novotny),
  cgroup: Add documentation for blkiotune elements. (Gui Jianfeng),
  docs/index.html.in: update KVM url (Niels de Vos),
  docs/index.html.in: update QEMU url (Alon Levy),
  docs: more on qemu locking patterns (Eric Blake),
  docs: renamed hudson project link to jenkins, matching project rename (Justin Clift),
  docs: Update docs for cpu_shares setting (Osier Yang),
  docs: replace CRLF with LF (Juerg Haefliger),
  docs: Add docs for new extra parameter pkipath (Osier Yang),
  docs: expand the man page text for virsh setmaxmem (Justin Clift),
  docs: fix incorrect XML element mentioned by setmem text (Justin Clift),
  docs: add a link to the bindings page under the downloads menu item (Justin Clift),
  docs: document <controller> element (Eric Blake),
  docs: move the apps page to the top level as its good promo (Justin Clift),
  docs: added new entries to apps page, plus adjusted a few existing (Justin Clift),
  docs: document <sysinfo> and <smbios> elements (Eric Blake),
  datatypes: Fix outdated function names in the documentation (Matthias Bolte),
  Add documentation for VIR_DOMAIN_MEMORY_PARAM_UNLIMITED (Matthias Bolte),
  docs: Move the "Network Filtering" page one level up in the hierarchy (Matthias Bolte),
  docs: add buildbot to the apps page (Justin Clift),
  docs: add new conversion heading to the apps listing (Justin Clift),
  docs: updated windows page for new 0.8.7 installer (Justin Clift),
  docs: clarify virsh setvcpus and setmem usage with active domains (Justin Clift),
  Document HAP domain feature (Jim Fehlig),
  docs: fix trivial typos in currentMemory description (Justin Clift),
  doc: improve the documentation of desturi (Wen Congyang),
  docs: reorder apps page alphabetically, plus add libguestfs entries (Justin Clift),
  docs: add entry for archipel to the apps page (Justin Clift),
  docs: use xml entity encoding for extended character last name (Justin Clift),
  docs: updated memtune info again in virsh command reference (Justin Clift),
  docs: updated release of virsh cmd reference, with memtune info (Justin Clift),
  maint: document dislike of mismatched if/else bracing (Eric Blake),
  docs: added libvirt-announce to contact page (Justin Clift)
- Portability:
  qemu: ignore failure of qemu -M ? on older qemu (Eric Blake),
  virsh: avoid mingw compiler warnings (Eric Blake),
  build: avoid problems with autogen.sh runs from tarball (Eric Blake),
  build: fix cygwin strerror_r failure (Eric Blake),
  Avoid pthread_sigmask on Win32 platforms (Daniel P. Berrange),
  Fix compilation when building without sasl (Daniel Veillard),
  build: fix parted detection at configure time (Eric Blake),
  Fix setup of lib directory with autogen.sh --system (Daniel P. Berrange),
  build: fix 'make check' with older git (Eric Blake),
  maint: support --no-git option during autogen.sh (Eric Blake),
  libvirt-guests: remove bashisms (Laurent Léonard),
  build: restore mingw build (Eric Blake),
  commandtest: avoid printing loader-control variables from commandhelper (Diego Elio Pettenò)
- Bug Fixes:
  qemu: Error prompt when saving a shutoff domain (Osier Yang),
  cgroup: preserve correct errno on failure (Eric Blake),
  qemu: Fix command line generation with faked host CPU (Jiri Denemark),
  tests: Fake host capabilities properly (Jiri Denemark),
  build: address clang reports about virCommand (Eric Blake),
  qemu: don't mask real error with oom report (Eric Blake),
  qemu: avoid NULL derefs (Eric Blake),
  virDomainMemoryStats: avoid null dereference (Eric Blake),
  Fix leak of mutex attributes in POSIX threads impl (Daniel P. Berrange),
  Fix leak in SCSI storage backend (Daniel P. Berrange),
  storage: Create enough volumes for mpath pool (Osier Yang),
  qemu: avoid NULL deref on error (Eric Blake),
  conf: Fix XML generation for smartcards (Jiri Denemark),
  Fix cleanup on VM state after failed QEMU startup (Daniel P. Berrange),
  libvirt-qemu: Fix enum type declaration (Jiri Denemark),
  xen: Prevent updating device when attaching a device (Osier Yang),
  qemu: Fix escape_monitor(escape_shell(command)) (Philipp Hahn),
  qemu: fix attach-interface regression (Wen Congyang),
  Fix typo in parsing of spice 'auth' data (Michal Privoznik),
  Reset logging filter function when forking (Daniel P. Berrange),
  Block SIGPIPE around virExec hook functions (Daniel P. Berrange),
  Only initialize/cleanup libpciaccess once (Daniel P. Berrange),
  macvtap: fix 2 nla_put expressions (non-serious bug) (Stefan Berger),
  qemu: avoid double shutdown (Eric Blake),
  Fix conflicts with glibc globals (Davidlohr Bueso),
  qemuBuildDeviceAddressStr() checks for QEMUD_CMD_FLAG_PCI_MULTIBUS (Niels de Vos),
  Don't sleep in poll() if there is existing SASL decoded data (Daniel P. Berrange),
  Initialization error of controller in QEmu SCSI hotplug (Wen Congyang),
  esx: Ensure max-memory has 4 megabyte granularity (Matthias Bolte),
  Remove double close of qemu monitor (Daniel P. Berrange),
  Prevent overfilling of self-pipe in python event loop (Daniel P. Berrange),
  avoid vm to be deleted if qemuConnectMonitor failed (Wen Congyang),
  tests: Fix virtio channel tests (Jiri Denemark),
  event: fix event-handling allocation crash (Eric Blake),
  storage: Round up capacity for LVM volume creation (Osier Yang),
  Do not use virtio-serial port 0 for generic ports (David Allan),
  Manually kill gzip if restore fails before starting qemu (Laine Stump),
  Set SELinux context label of pipes used for qemu migration (Laine Stump),
  virsh: require --mac to avoid detach-interface ambiguity (Michal Privoznik),
  dispatch error before return (Wen Congyang),
  event: fix event-handling data race (Eric Blake),
  qemu: Retry JSON monitor cont cmd on MigrationExpected error (Jim Fehlig),
  Fix startup with VNC password expiry on old QEMU (Daniel P. Berrange),
  Fix error reporting when machine type probe fails (Daniel P. Berrange),
  Avoid crash in security driver if model is NULL (Daniel P. Berrange),
  qemu: Fix a possible deadlock in p2p migration (Wen Congyang),
  qemu: Avoid sending STOPPED event twice (Jiri Denemark),
  spec: Start libvirt-guests only if it's on in current runlevel (Jiri Denemark),
  Increase size of driver table to make UML work again (Daniel P. Berrange),
  qemu: don't fail capabilities check on 0.12.x (Eric Blake),
  Fix 'make check' after commit 04197350 (Jim Fehlig),
  esx: Fix memory leak in HostSystem managed object free function (Matthias Bolte),
  qemu: Watchdog IB700 is not a PCI device (RHBZ#667091). (Richard W.M. Jones),
  cpu: plug memory leak (Eric Blake),
  network: plug memory leak (Eric Blake),
  network: plug unininitialized read found by valgrind (Eric Blake),
  remote: Don't lose track of events when callbacks are slow (Cole Robinson),
  conf: Report error if invalid type specified for character device (Osier Yang),
  daemon: Fix core dumps if unix_sock_group is set (Jiri Denemark),
  vbox: Use correct VRAM size unit (Matthias Bolte),
  bridge: Fix generation of dnsmasq's --dhcp-hostsfile option (Kay Schubert),
  qemu: Fix bogus warning about uninitialized saveptr (Jiri Denemark),
  Don't chown qemu saved image back to root after save if dynamic_ownership=0 (Laine Stump)
- Improvements:
  maint: delete unused 'make install' step (Eric Blake),
  Update czech localization (Zdenek Styblik),
  Avoid empty strings when --with-packager(-version) is not specified (Matthias Bolte),
  Output commandline on status != 0 in virCommandWait (Matthias Bolte),
  add missing error handling to virGetDomain (Christophe Fergeau),
  call virReportOOMError when appropriate in hash.c (Christophe Fergeau),
  xml: avoid compiler warning (Eric Blake),
  nwfilter: reorder match extensions relative to state match (Stefan Berger),
  fix OOM handling in hash routines (Christophe Fergeau),
  docs: Distribute XSLT files to generate HACKING (Matthias Bolte),
  qemu: Report a more informative error for missing cgroup controllers (Matthias Bolte),
  Imprint all logs with version + package build information (Daniel P. Berrange),
  Reduce log level when cgroups aren't mounted (Daniel P. Berrange),
  Avoid warnings from nwfilter driver when run non-root (Daniel P. Berrange),
  build: distribute 'make syntax-check' tweaks (Eric Blake),
  Adjust some log levels in udev driver (Daniel P. Berrange),
  Add check for binary existing in machine type probe (Daniel P. Berrange),
  Add a little more debugging for async events (Daniel P. Berrange),
  Move connection driver modules directory (Daniel P. Berrange),
  Support SCSI RAID type & lower log level for unknown types (Daniel P. Berrange),
  Don't use CLONE_NEWUSER for now (Serge E. Hallyn),
  sysinfo: implement qemu support (Eric Blake),
  sysinfo: refactor xml formatting (Eric Blake),
  sysinfo: implement virsh support (Eric Blake),
  sysinfo: implement the remote protocol (Eric Blake),
  sysinfo: implement the public API (Eric Blake),
  sysinfo: define internal driver API (Eric Blake),
  LXC: LXC Blkio weight configuration support. (Gui Jianfeng),
  qemu: Implement blkio tunable XML configuration and parsing. (Gui Jianfeng),
  cgroup: Update XML Schema for new entries. (Gui Jianfeng),
  cgroup: Implement blkio.weight tuning API. (Gui Jianfeng),
  cgroup: Enable cgroup hierarchy for blkio cgroup (Gui Jianfeng),
  Update Dutch and Polish localizations (Daniel Veillard),
  Vietnamese translations for libvirt (Hero Phương),
  spicevmc: support older -device spicevmc of qemu 0.13.0 (Eric Blake),
  smartcard: add spicevmc support (Eric Blake),
  spicevmc: support new qemu chardev (Daniel P. Berrange),
  smartcard: turn on qemu support (Eric Blake),
  smartcard: enable SELinux support (Eric Blake),
  smartcard: check for qemu capability (Eric Blake),
  smartcard: add domain conf support (Eric Blake),
  smartcard: add XML support for <smartcard> device (Eric Blake),
  qemu: Support booting from hostdev PCI devices (Jiri Denemark),
  Support booting from hostdev devices (Jiri Denemark),
  qemu: Add shortcut for HMP pass through (Jiri Denemark),
  macvtap: fix variable in debugging output (Stefan Berger),
  qemu: Build command line for incoming tunneled migration (Osier Yang),
  bridge_driver: handle DNS over IPv6 (Paweł Krześniak),
  tests: handle backspace-newline pairs in test input files (Juerg Haefliger),
  qemu: More clear error parsing domain def failure of tunneled migration (Osier Yang),
  maint: reject raw close, popen in 'make syntax-check' (Eric Blake),
  build: avoid close, system (Eric Blake),
  Add VIR_DIV_UP to divide memory or storage request sizes with round up (Matthias Bolte),
  qemu: fix augeas support for vnc_auto_unix_socket (Eric Blake),
  virsh: added --all flag to freecell command (Michal Privoznik),
  esx: Don't try to change max-memory of an active domain (Matthias Bolte),
  qemu aio: enable support (Eric Blake),
  qemu aio: parse aio support from qemu -help (Matthias Dahl),
  qemu aio: add XML parsing (Matthias Dahl),
  Remove bogus log warning lines when launching QEMU (Daniel P. Berrange),
  qemu: fix error messages (Eric Blake),
  qemu: Report more accurate error on failure to attach device. (Hu Tao),
  Force guest suspend at timeout (Wen Congyang),
  Show migration progress. (Wen Congyang),
  Cancel migration if user presses Ctrl-C when migration is in progress (Hu Tao),
  qemu: use separate alias for chardev and associated device (Eric Blake),
  remote: Add extra parameter pkipath for URI (Osier Yang),
  Update localization files from Fedora i10n (Daniel Veillard),
  Add check for poll error events in monitor (Daniel P. Berrange),
  Filter out certain expected error messages from libvirtd (Daniel P. Berrange),
  Add a function to the security driver API that sets the label of an open fd. (Laine Stump),
  qemu: Error prompt when managed save a shutoff domain (Osier Yang),
  build: avoid corrupted gnulib/tests/Makefile (Eric Blake),
  qemu: sound: Support intel 'ich6' model (Cole Robinson),
  vmx: Use VIR_ERR_CONFIG_UNSUPPORTED when appropriated (Matthias Bolte),
  Push unapplied fixups for previous patch (Cole Robinson),
  qemu: Add conf option to auto setup VNC unix sockets (Cole Robinson),
  qemu: Allow serving VNC over a unix domain socket (Cole Robinson),
  qemu: Set domain def transient at beginning of startup process (Cole Robinson),
  qemu: report more proper error for unsupported graphics (Osier Yang),
  qemu: Fail if per-device boot is used but deviceboot is not supported (Jiri Denemark),
  Turn libvirt.c error reporting functions into macros (Daniel P. Berrange),
  build: use more gnulib modules for simpler code (Eric Blake),
  Remove two unused PATH_MAX-sized char arrays from the stack (Matthias Bolte),
  Use VIR_ERR_OPERATION_INVALID when appropriated (Matthias Bolte),
  Fix misuse of VIR_ERR_INVALID_* error code (Matthias Bolte),
  Simplify "NWFilterPool" to "NWFilter" (Matthias Bolte),
  datatypes: Get virSecretFreeName in sync with the other free functions (Matthias Bolte),
  qemu: use -incoming fd:n to avoid qemu holding fd indefinitely (Eric Blake),
  tests: Add tests for per-device boot elements (Jiri Denemark),
  Introduce per-device boot element (Jiri Denemark),
  conf: Move boot parsing into a separate function (Jiri Denemark),
  build: let xgettext see strings in libvirt-guests (Eric Blake),
  A couple of fixes for the search PHP code (Daniel Veillard),
  virsh: Use WITH_SECDRIVER_APPARMOR to detect AppArmor support (Matthias Bolte),
  memtune: Let virsh know the unlimited value for memory tunables (Nikunj A. Dadhania),
  maint: improve sc_prohibit_strncmp syntax check (Eric Blake),
  Enable tuning of qemu network tap device "sndbuf" size (Laine Stump),
  Add XML config switch to enable/disable vhost-net support (Laine Stump),
  Use the new set_password monitor command to set password. (Marc-André Lureau),
  qemu: add set_password and expire_password monitor commands (Marc-André Lureau),
  qemu: move monitor device out of domain_conf common code (Eric Blake),
  domain_conf: split source data out from ChrDef (Eric Blake),
  cpu: Add support for Westmere CPU model (Jiri Denemark),
  qemu: improve device flag parsing (Eric Blake),
  util: add missing string->integer conversion functions (Eric Blake),
  qemu: convert capabilities to use virCommand (Eric Blake),
  virsh: ensure --maximum flag used only with --config for setvcpus (Justin Clift),
  Add HAP to xen hypervisor capabilities (Jim Fehlig),
  Add support for HAP feature to xen drivers (Jim Fehlig),
  Add HAP to virDomainFeature enum (Jim Fehlig),
  tests: virsh is no longer in builddir/src (Eric Blake),
  virFindFileInPath: only find executable non-directory (Eric Blake),
  Fix old PHP syntax in the search online form (Daniel Veillard),
  report error when specifying wrong desturi (Wen Congyang),
  qemu: Reject SDL graphic if it's not supported by qemu (Osier Yang),
  vbox: Silently ignore missing registry key on Windows (Matthias Bolte),
  python: Use PyCapsule API if available (Cole Robinson),
  event-test: Simplify debug on/off (Cole Robinson),
  Refactor the security drivers to simplify usage (Daniel P. Berrange),
  Add AM_MAINTAINER_MODE (Guido Günther),
  esx: Move occurrence check into esxVI_LookupObjectContentByType (Matthias Bolte),
  esx: Add domain autostart support (Matthias Bolte),
  vmx: Add support for video device VRAM size (Matthias Bolte),
  API: Improve log for domain related APIs (Osier Yang),
  schema: tighten <serial><protocol type=...> relaxNG (Eric Blake),
  Log an error on attempts to add a NAT rule for non-IPv4 addresses (Laine Stump),
  Improve error reporting when parsing dhcp info for virtual networks (Laine Stump),
  qemu driver: fix positioning to end of log file (Stefan Berger),
  build: satisfy 'make syntax-check' regarding year change (Eric Blake)
- Cleanups:
  build: silence some clang warnings (Eric Blake),
  maint: kill dead assignments (Eric Blake),
  build: silence false positive clang report (Eric Blake),
  maint: whitespace cleanup (Eric Blake),
  maint: update AUTHORS (Eric Blake),
  Prefer C style comments over C++ ones (Matthias Bolte),
  Revert all previous error log priority hacks (Daniel P. Berrange),
  Cleanup code style in logging APIs (Daniel P. Berrange),
  Remove redundant brackets around return values (Daniel P. Berrange),
  tests: Remove obsolete secaatest (Matthias Bolte),
  datatypes: avoid redundant __FUNCTION__ (Eric Blake)

### 0.8.7: Jan 04 2011

- Features:
  Preliminary support for VirtualBox 4.0 (Matthias Bolte),
  IPv6 support (Laine Stump),
  Add VMware Workstation and Player driver (Jean-Baptiste Rouault),
  Add network disk support (MORITA Kazutaka and Josh Durgin)
- Documentation:
  esx: Fix "occurence" typo (again) (Matthias Bolte),
  update docs for network disks (MORITA Kazutaka),
  docs: Make VMware Workstation / Player page appear in the menu (Matthias Bolte),
  Add info about VMware driver to the libvirt website (Jean-Baptiste Rouault),
  docs: fixed typo, added table of contents (Justin Clift),
  docs: added compiling page and significantly expanded windows page (Justin Clift),
  docs: Add additional indentation to level 3 menu items (Matthias Bolte),
  maint: doc fix (Eric Blake),
  Update documentation of watchdog dump option and add test data for it (Hu Tao),
  virsh: fix a typo in the memtune help description (Justin Clift),
  docs: updated virsh command reference download links to new version (Justin Clift),
  Moved the nodeinfo command to the 'host' help keyword group (Justin Clift),
  man pages: update the description for the virsh help command (Justin Clift),
  virsh: move two commands from domain group to storage pool group (Osier Yang),
  virCommand: docs for usage of new command APIs (Daniel P. Berrange),
  virsh: update help for "virsh help help" (Osier Yang),
  virsh: remove a badly placed line break in virsh -h output (Justin Clift),
  virsh: Categorize commands into groups for virsh help (Osier Yang)
- Portability:
  vbox: Handle different IID representation in Version 2.2 on Windows (Matthias Bolte),
  build: make building on cygwin easier (Eric Blake),
  build: improve testsuite results with older automake (Eric Blake),
  build: allow older libselinux again (Eric Blake),
  build: allow autoconf 2.59 again (Eric Blake),
  build: allow mingw compilation with virCommand (Eric Blake),
  build: quote AC_LANG_PROGRAM to avoid warnings with autoconf 2.68 (Diego Elio Pettenò),
  build: properly handle ./configure --with-libpcap (Diego Elio Pettenò),
  build: avoid shadowing devname() on BSD systems (Eric Blake)
  Fix undefined symbol errors when macvtap support is disabled (Matthias Bolte),
  Fix warning when macvtap support is disabled (Jean-Baptiste Rouault)
- Bug Fixes:
  virExec: fix logic bug (Eric Blake),
  Set broadcast address for IPv4 addresses on virtual network bridges (Laine Stump),
  Fix misuse of VIR_ERR_INVALID_DOMAIN (Matthias Bolte),
  build: fix building error when building without libvirtd (Wen Congyang),
  spec: Enable ESX driver on RHEL (Jiri Denemark),
  bridge: Fix uninitialized variable (Jiri Denemark),
  make the dhcp element optional in network.rng (Laine Stump),
  fix syntax error in configure.ac (Wen Congyang),
  qemu: Reparent children when deleting a snapshot (Matthias Bolte),
  Set bitmap size when allocating a bitmap (Jim Fehlig),
  qemu: Return SPICE ports on domain shutdown (Jiri Denemark),
  virterror: avoid API breakage with vmware (Eric Blake),
  Fix memory leak in virsh (Hu Tao),
  Distribute libvirt_vmx.syms (Matthias Bolte),
  vmware: Fix undefine symbol with loadable drivers enabled (Matthias Bolte),
  esx: Fix cluster resource lookup when connecting to a vCenter (Matthias Bolte),
  command: avoid hanging on daemon processes (Eric Blake),
  storage: Ignore dangling symbolic link for filesystem pool (Osier Yang),
  Skip file-based security checks for network disks (Josh Durgin),
  tests: avoid data race (Eric Blake),
  bridge_driver: avoid double call to VIR_FREE (Paweł Krześniak),
  vbox: Don't leak domain names in vboxListDefinedDomains (Matthias Bolte),
  vbox: Don't leak arrays from XPCOM (Matthias Bolte),
  build: fix typo that broke 'make dist' (Eric Blake),
  util: Fix logical error in virReportSystemErrorFull (Jiri Denemark),
  util: Fix error message in __virExec (Jiri Denemark),
  daemon: Change CWD to / before daemonizing (Jiri Denemark),
  daemon, threads: plug a memory leak (Eric Blake),
  daemon: plug a memory leak (Eric Blake),
  conf: plug memory leaks (Eric Blake),
  tests: plug memory leaks (Eric Blake),
  virExec: avoid undefined behavior (Eric Blake),
  command: plug memory leak (Eric Blake),
  build: distribute commandtest files (Eric Blake),
  spec: do not start libvirt-guests if that service is off (Dan Kenigsberg),
  correct the signal's name (Wen Congyang),
  command: avoid memory leak (Eric Blake),
  qemu: call drive_del in DetachPciDiskDevice (Ryan Harper),
  qemu: call drive_unplug in DetachPciDiskDevice (Ryan Harper),
  qemud: fix memory leak in io error events (Anthony Liguori),
  qemu: Enable disabled debug messages (Jiri Denemark),
  qemu: Use -vga none only if it is supported (Jiri Denemark),
  openvz: avoid potential buffer overflow (Eric Blake),
  tests: fix leaks in commandtest (Eric Blake),
  uuid: require smbios uuid and domain uuid to match (Eric Blake),
  qemu: avoid adding "" in smbios arguments (Eric Blake),
  Fix funny off-by-one error in clock-variable (Dan Kenigsberg),
  syntax error "Bad fd number" when stopping libvirt-guests (Laurent Léonard),
  util: Fix bug which will cause libvirtd crash (Osier Yang),
  qemu: Fix a possible deadlock in p2p migration (Jiri Denemark),
  qemu: Don't try to set input FD to -1 (Matthias Bolte),
  Fix memory leak in logging setup (Daniel P. Berrange),
  schemas: Fix cpu element schema (Jiri Denemark),
  virsh: Remove using phy as default disk driver in cmdAttachDisk (Osier Yang),
  OpenVZ: drop fd leackage (Guido Günther),
  qemu: plug memory leak (Eric Blake),
  libvirtd: avoid memory leak on shutdown (Eric Blake),
  Fix flaw in thread creation APIs (Daniel P. Berrange)
- Improvements:
  build: avoid compilation warnings (Eric Blake),
  Improve virSocketAddrMask[ByPrefix] API (Laine Stump),
  Utility functions to produce an IPv4 broadcast address (Laine Stump),
  qemu: add -incoming fd:n capability checking (Eric Blake),
  spec: Automatically turn on cgconfig service (Daniel P. Berrange),
  Replace setuid/setgid/initgroups with virSetUIDGID() (Laine Stump)
  new virSetUIDGID() utility function (Laine Stump)
  Preserve errno across calls to error reporting functions & VIR_FREE (Laine Stump),
  Run radvd for virtual networks with IPv6 addresses (Laine Stump),
  Turn on IPv6 support in the bridge_driver.c virtual network driver (Laine Stump),
  Update iptables.c to also support ip6tables. (Laine Stump),
  Support multiple IP addresses on one network in bridge_driver.c (Laine Stump),
  Change virtual network XML parsing/formatting to support IPv6 (Laine Stump),
  Replace brSetInetAddress/brSetInetNetmask with brAddInetAddress (Laine Stump),
  Make virtual network netmasks optional (Laine Stump),
  Pass prefix rather than netmask into iptables functions (Laine Stump),
  Consistently return 0 on success, -1 on failure in bridge_driver.c (Laine Stump),
  Fix logging of failed iptables commands (Laine Stump),
  New virNetworkDef utility functions (Laine Stump),
  New virSocketAddr utility functions (Laine Stump),
  virsh: Add --force option to update-device (Jiri Denemark),
  esx: Add support for storage volume wiping (Matthias Bolte),
  esx: Add support for storage volume deletion (Matthias Bolte),
  maint: avoid space-tab (Eric Blake),
  build: skip vmware driver when building for RHEL (Eric Blake),
  tests: avoid spurious failure of nodeinfotest (Eric Blake),
  libvirt-guests: avoid sourcing failure (Eric Blake),
  vbox: Handle different array representations of XPCOM and MSCOM (Matthias Bolte),
  vbox: Add glue layer for MSCOM on Windows (Matthias Bolte),
  vbox: Match struct layout of the MSCOM implementation on Windows (Matthias Bolte),
  vbox: Use stdcall convention for all COM methods on Windows (Matthias Bolte),
  maint: improve tests distribution (Eric Blake),
  Update QEMU test cases for new file locations & API renames (Daniel P. Berrange),
  Move QEMU hotplug helper code out of the QEMU driver (Daniel P. Berrange),
  Move QEMU domain lock / job helper code to separate file (Daniel P. Berrange),
  Move QEMU driver lock helpers to a separate file (Daniel P. Berrange),
  Move QEMU hostdev helper code out of the QEMU driver (Daniel P. Berrange),
  Move QEMU cgroup helper code out of the QEMU driver (Daniel P. Berrange),
  Move QEMU audit helper code out of the QEMU driver (Daniel P. Berrange),
  Move QEMU private data & namespace code into separate file (Daniel P. Berrange),
  Move QEMU command line management into a separate file (Daniel P. Berrange),
  Move QEMU capabilities management into a separate file (Daniel P. Berrange),
  Add a new function doStartCPUs (Hu Tao),
  Add a new function doStopCPUs (Hu Tao),
  Add a macro timeval_to_ms to compute micro seconds from timeval (Hu Tao),
  cpu: Unify CPUID data structures (Jiri Denemark),
  esx: Add support for storage volume cloning (Matthias Bolte),
  selinux: avoid memory overhead of matchpathcon (Eric Blake),
  tests: test Fedora 14 qemu-kvm -help parsing (Eric Blake),
  tests: test RHEL 6.0 qemu-kvm -help parsing (Eric Blake),
  sysinfo: convert to virCommand (Eric Blake),
  build: update gnulib for pipe on mingw (Eric Blake),
  test: fix commandtest under autobuild.sh (Eric Blake),
  qemu: Introduce two new job types (Osier Yang),
  qemu: Add RBD support and some network disk fixes (Josh Durgin),
  Missing "Default-Stop" field in LSB comment in libvirt-guests (Laurent Léonard),
  802.1Qbh: Add support for IFLA_VF_MAC (Roopa Prabhu),
  command: ease use with virBuffer, and fix qemu leak (Eric Blake),
  Convert dhcpStartDhcpDaemon from virRun to virCommand (Laine Stump),
  esx: Refactor storage pool type lookup into a function (Matthias Bolte),
  esx: Improve error reporting for failed tasks (Matthias Bolte),
  tests: Add tests for network disks (Josh Durgin),
  Add a watchdog action `dump' (Hu Tao),
  Add a new function doCoreDump (Hu Tao),
  threadpool impl (Hu Tao),
  qemu: Distinguish between domain shutdown and crash (Jiri Denemark),
  qemu: Only build devstr when needs (attach PCI controller) (Osier Yang)
  configure: improve misleading libnl missing error message (Justin Clift),
  maint: update to latest gnulib (Eric Blake),
  openvz: convert popen to virCommand (Eric Blake),
  command: improve behavior on no output (Eric Blake),
  command: enforce fd vs. buffer considerations (Eric Blake),
  tests: Fix commandtest in VPATH build (Jiri Denemark),
  command: improve allocation failure reporting (Eric Blake),
  tests: Fix detection of expected error (Jiri Denemark),
  tests: Fix code formating in commandtest (Jiri Denemark),
  smbios: allow () in smbios strings (Eric Blake)
  smbios: support system family (Eric Blake),
  threads: add virThreadID for debugging use (Eric Blake),
  tests: Don't ignore return value of getcwd(), (Jiri Denemark),
  build: Fix internal docs generation in VPATH builds (Jiri Denemark),
  Change return value of VIR_DRV_SUPPORTS_FEATURE to bool (Jiri Denemark),
  Implement virVMOperationType{To|From}String independent from WITH_MACVTAP (Matthias Bolte),
  Create file in virFileWriteStr() if it doesn't exist (Jean-Baptiste Rouault)
  Remove bogus includes (Daniel P. Berrange),
  uml: convert to virCommand (Daniel P. Berrange),
  qemu: convert to virCommand (Eric Blake),
  Port hooks and iptables code to new command execution APIs (Daniel P. Berrange),
  Introduce new APIs for spawning processes (Daniel P. Berrange),
  util: add virVasprintf (Eric Blake),
  util: fix saferead type (Eric Blake),
  Tweak daemon event debug to include errno (Daniel P. Berrange),
  tests: Add tests for CPU selection in qemu driver (Jiri Denemark),
  tests: Support for faking emulator in qemuxml2argv (Jiri Denemark),
  maint: update .gitignore (Eric Blake),
  qemu: Use macro for max and min vnc port instead of number (Osier Yang),
  tests: Add unit tests for internal CPU APIs (Jiri Denemark),
  cpu: Add support for overriding path to CPU map XML file (Jiri Denemark),
  Fall back to QEMUD_SAVE_FORMAT_RAW if compression method fails. (Hu Tao)
- Cleanups:
  esx: Move VMX handling code out of the driver directory (Matthias Bolte),
  qemu: use virAsprintf instead of PATH_MAX (Eric Blake),
  build: fix typo that broke 'make dist' (Wen Congyang),
  sysinfo: formatting cleanups (Eric Blake),
  virsh: Remove redundant commands in group domain (Osier Yang),
  virsh: Remove redundant optional option for cmdHelp (Osier Yang),
  qemu: Fix typo in qemuTeardownDiskPathDeny (Osier Yang),
  maint: allow 'make syntax-check' to run again (Eric Blake)