# Releases

Here is the list of official releases, 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.10: Feb 13 2012

- Features:
  Add support for sVirt in the LXC driver (Daniel P. Berrange),
  block rebase: add new API virDomainBlockRebase (Eric Blake),
  API: Add api to set and get domain metadata (Peter Krempa),
  virDomainGetDiskErrors public API (Jiri Denemark),
  conf: add rawio attribute to disk element of domain XML (Taku Izumi),
  Add new public API virDomainGetCPUStats() (KAMEZAWA Hiroyuki),
  Introduce virDomainPMSuspendForDuration API (Michal Privoznik),
  resize: add virStorageVolResize() API (Zeeshan Ali (Khattak)),
  Add a virt-host-validate command to sanity check HV config (Daniel P. Berrange),
  Add new virDomainShutdownFlags API (Daniel P. Berrange),
  QEMU guest agent support (Daniel P. Berrange)
- Documentation:
  fix typo in python bindings (Eric Blake),
  conf: small changes to comments in virDomainDeviceInfo (Laine Stump),
  Clarify the purpose of domxml-from-native (Dave Allan),
  Enhance documentation of the old-style boot configuration (Jiri Denemark),
  virterror.c: Fix several spelling mistakes (Philipp Hahn),
  Add detail to documentation on storage pools and volumes. (Dave Allan),
  fill out rawio description (Laine Stump),
  XenXs: Update documentation (Philipp Hahn),
  reorder public header (Eric Blake),
  tweak recent suspend API additions (Eric Blake),
  Add missing docs for <viridian/> feature flag (Daniel P. Berrange),
  fix virsh man page (Eric Blake),
  fix a few small typos in formatdomain.html.in (Laine Stump),
  src/datatypes.h: fix typo (Alon Levy),
  Clarify semantics of virDomainMigrate{,ToURI}2 (Jiri Denemark),
  Add missed RNG schema for interface (Osier Yang),
  Add documentation new ways to access members of variables (Stefan Berger),
  virsh: improve doMigrate function docs (Alex Jia),
  standardize description of flags (Eric Blake),
  Document Android application using libvirt (Michal Privoznik)
- Portability:
  virpidfile: replace fopen/fwrite/fscanf with more portable version (Marc-André Lureau),
  util: Do not use PRIx64 macro (Osier Yang),
  Replace truncate() with ftruncate() (Daniel P. Berrange),
  build: avoid gcc 4.7 warning about inlines (Eric Blake),
  lxc: Fix build with AppArmor (Jiri Denemark),
  Update gnulib to fix mingw64 compilation errors (Marc-André Lureau),
  tests: virnettlscontexttest needs gnutls-2.6.0 (Philipp Hahn),
  qemu: Silent bogus warning about unitialized variable (Jiri Denemark),
  build: fix text regression (Eric Blake),
  Add virt-host-validate.1 to Mingw32 RPM spec file list (Daniel P. Berrange),
  build: fix missing include (Eric Blake),
  qemu: support qmp on RHEL/CentOS qemu (Eric Blake),
  util: Include stdint.h because of uint32_t (Michal Privoznik),
  Cast pointer to int using intptr_t (Marc-André Lureau),
  build: fix header order on mingw (Eric Blake),
  errcode is typedef by mingw, rename an argument name (Marc-André Lureau),
  Add missing virGetGroupName() (Marc-André Lureau),
  build: skip lxc with too-old glibc (Eric Blake),
  Remove dmidecode dependancy outside PC arches (Daniel Veillard),
  build: fix bootstrap on fresh clone (Eric Blake),
  tests: Add qemuxml2argv tests for PPC64 pseries machine (Michael Ellerman),
  tests: Teach qemuxml2argvtest about spapr-vio addresses (Michael Ellerman),
  Disable netcf if building without libvirtd (Daniel P. Berrange),
  build: fix build on mingw with netcf available (Eric Blake),
  build: avoid spurious compiler warning (Eric Blake)
- Bug Fixes:
  rpc: Plug memory leaks on doRemoteOpen() failure path (Alex Jia),
  GetCPUStats: fix overflow test (Lai Jiangshan),
  python: Correct arguments number for migrateSetMaxSpeed (Osier Yang),
  qemu: fix persistent setting of blkiodevice weights (Eric Blake),
  qemu: Fix memory leak when building -cpu argument (Jiri Denemark),
  security: Driver 'none' cannot create confined guests (Jiri Denemark),
  seclabel: Do not output relabel attribute for type 'none' (Jiri Denemark),
  virsh: Plug memory leak on cmdDesc (Alex Jia),
  virsh: Do not check the input XML at virsh layer for cmdDetachDevice (Osier Yang),
  On systems with dmidecode version 2.10 or older, (Prerna Saxena),
  storage: Don't unsparsify images when cloning (Cole Robinson),
  build: don't require avahi during install (Laine Stump),
  pyhton: Don't link against libvirt_util.la (Michal Privoznik),
  xen-xm: SIGSEGV in xenXMDomainDefineXML: filename (Philipp Hahn),
  xen-xm: fix data loss in domain edit (Philipp Hahn),
  virsh: Fix resource leak while listing inactive domains with titles (Peter Krempa),
  xen_xm: Fix SIGSEGV in xenXMDomainDefineXML (Philipp Hahn),
  qemu: Fix seamless spice migration (Jiri Denemark),
  apparmor: Add missing comma (Jiri Denemark),
  virsh: Avoid invalid read of size errors (Alex Jia),
  qemu: eliminate "Ignoring open failure" when using root-squash NFS (Laine Stump),
  conf: Plug memory on virDomainDiskDefParseXML (Alex Jia),
  virsh: Plug memory leak on cmdUndefine (Alex Jia),
  network: fix testsuite regression (Eric Blake),
  network: Avoid memory leaks on networkBuildDnsmasqArgv (Alex Jia),
  python: correct a copy-paste error (Alex Jia),
  qemu: Don't jump to endjob if no job was even started (Michal Privoznik),
  qemu: fix my typo at commit 74e034964c32edb1732d0ff7642f3977f3587d72 (Taku Izumi),
  qemu: Fix segfault in qemuMonitorTextGetBlockInfo (Hendrik Schwartke),
  tests: fix reversed comparisons (Eric Blake),
  qemu: avoid double free of qemu help output (Eric Blake),
  apparmor: Fix use of uninitialized random_data (Jiri Denemark),
  storage: Fix any VolLookupByPath if we have an empty logical pool (Cole Robinson),
  Don't bind mount onto a char device for /dev/ptmx in LXC (Daniel P. Berrange),
  xen: Don't crash when we fail to init caps (Guido Günther),
  xen: properly report out of memory when hvm_type is too small (Guido Günther),
  threads: check for failure to set thread-local value (Eric Blake),
  Fix rpc generator to anchor matches for method names (Daniel P. Berrange),
  Fix startup of LXC containers with filesystems containing symlinks (Daniel P. Berrange),
  qemu: Prohibit reattaching node device if it is in use (Osier Yang),
  qemu: Don't break domain with 0:0:2.0 assigned to anything but VGA (Jiri Denemark),
  Fixed dumpxml of <iotune> parameters (Martin Kletzander),
  nwfilter: fix typing error in filter (Stefan Berger),
  events: Return the correct number of registered events (Adam Litke),
  uuid: fix off-by-one (Eric Blake),
  build: fix virsh reformat fallout (Eric Blake),
  stream: Check for stream EOF (Michal Privoznik),
  Do not generate security_model when fs driver is anything but 'path' (Deepak C Shetty),
  qemu: check for kvm availability before starting kvm guests (Laine Stump),
  qemu: fix a typo on qemuDomainSetBlkioParameters (Alex Jia),
  config: report error when script given for inappropriate interface type (Laine Stump)
- Improvements:
  python: make other APIs share common {get, set}PyVirTypedParameter (Guannan Ren),
  npiv: Auto-generate WWN if it's not specified (Osier Yang),
  Remove single quotes from audit records (Marcelo Cerri),
  domain: add implicit USB controller (Marc-André Lureau),
  python: refactoring virTypedParameter conversion for NUMA tuning APIs (Guannan Ren),
  qemu: make blkiodevice weights easier to read (Eric Blake),
  sysinfo: simplify function signature (Eric Blake),
  Populate /dev/std{in,out,err} symlinks in LXC containers (Daniel P. Berrange),
  Update symbols file for virFileDirectFd/virFileWrapperFd rename (Daniel P. Berrange),
  virsh: Fix flag semantics and docs for "desc" command (Peter Krempa),
  qemu: Always use iohelper for domain save (Jiri Denemark),
  qemu: Always use iohelper for dumping domain core (Jiri Denemark),
  util: Generalize virFileDirectFd (Jiri Denemark),
  Allow polkit auth for VNC and SSH users (Cole Robinson),
  seclabel: make code and RNG match (Eric Blake),
  maint: Add test output files to .gitignore (Peter Krempa),
  tests: Fix build with -Werror (Jiri Denemark),
  maint: consolidate several .gitignore files (Eric Blake),
  util: refactor virFileOpenAs (Laine Stump),
  util: rename netlink.[ch] to virnetlink.[ch] (D. Herrendoerfer),
  virsh: add --graceful switch to destroy command (Laine Stump),
  qemu: new GRACEFUL flag for virDomainDestroy w/ QEMU support (Laine Stump),
  Added missing memory reporting into python bindings (Martin Kletzander),
  python: use libvirt_util to avoid raw free (Eric Blake),
  build: expand rule to cover testsuite (Eric Blake),
  build: prohibit raw malloc and free (Eric Blake),
  build: clean up CPPFLAGS/INCLUDES usage (Eric Blake),
  command: allow merging stdout and stderr in string capture (Eric Blake),
  maint: prune duplicate listings in AUTHORS (Eric Blake),
  virsh: extension of virsh attach-disk for rawio (Taku Izumi),
  Fixed connection definition for non-SELinux builds (Martin Kletzander),
  Added RSS reporting (Martin Kletzander),
  Added RSS information gathering into qemudGetProcessInfo (Martin Kletzander),
  Set a security context on /dev and /dev/pts mounts (Daniel P. Berrange),
  Add two new security label types (Daniel P. Berrange),
  Re-add domain device seclabel parsing / formatting (Daniel P. Berrange),
  Revert changes to sec label parsing (Daniel P. Berrange),
  tests: dynamically replace dnsmasq path (Philipp Hahn),
  xen_xs: name xendConfigVersion magic numbers (Philipp Hahn),
  block rebase: initial qemu implementation (Eric Blake),
  block rebase: wire up remote protocol (Eric Blake),
  qemu: Add support for virDomainGetMetadata and virDomainSetMetadata (Peter Krempa),
  virsh: Add support for modifying domain description and titles (Peter Krempa),
  xml: Add element <title> to allow short description of domains (Peter Krempa),
  build: add missing virStorageFileResize to libvirt_private.syms (Laine Stump),
  build: add missing virCommandAddCap to libvirt_private.syms (Laine Stump),
  daemon: Allow overriding NOFILES ulimit for the daemon as well (Michal Privoznik),
  python: Add binding for virDomainGetDiskErrors (Jiri Denemark),
  virsh: Implement domblkerror command (Jiri Denemark),
  qemu: Implement virDomainGetDiskErrors (Jiri Denemark),
  Remote protocol for virDomainGetDiskErrors (Jiri Denemark),
  command: Fix ATTRIBUTE_UNUSED on virSetCapabilities (Michal Privoznik),
  simplify block of codes (Alex Jia),
  qemu: make qemu processes to retain rawio capability (Taku Izumi),
  util: extend virExecWithHook() (Taku Izumi),
  util: add functions to keep capabilities (Taku Izumi),
  Implement virStorageVolResize() for FS backend (Zeeshan Ali (Khattak)),
  resize: slightly alter signature (Eric Blake),
  qemu: add "romfile" support to specify device boot ROM (Laine Stump),
  qemu: (and conf) support rombar for network devices (Laine Stump),
  conf: relocate rombar and boot order parse/format (Laine Stump),
  conf: put all guest-related HostdevDef data in one object (Laine Stump),
  xen: Don't add <console> to xml for dom0 (Cole Robinson),
  remote handler for virDomainGetCPUStats() (KAMEZAWA Hiroyuki),
  virsh: Expose new virDomainPMSuspendForDuration API (Michal Privoznik),
  resize: implement remote protocol for virStorageVolResize() (Zeeshan Ali (Khattak)),
  Return more error output if policykit auth fails. (Cole Robinson),
  Add new error code VIR_ERROR_AUTH_CANCELLED (Cole Robinson),
  Move virEmitXMLWarning into xml.h (Daniel P. Berrange),
  Move virMacAddrXXX functions to src/util/virmacaddr.[ch] (Daniel P. Berrange),
  Rename virXXXXMacAddr to virMacAddrXXX (Daniel P. Berrange),
  qemu: parse and create -cpu ...,-kvmclock (Paolo Bonzini),
  conf: add kvmclock timer (Paolo Bonzini),
  qemu: do not create useless <cpu> element (Paolo Bonzini),
  qemu: get arch name from <cpu> element (Paolo Bonzini),
  qemu: detect arch correctly for KVM (Paolo Bonzini),
  x86: add kvm32 and kvm64, update qemu64 (Paolo Bonzini),
  qemu: parse -enable-kvm (Paolo Bonzini),
  qemu: require qmp on new enough qemu (Eric Blake),
  nwfilter: Rebuild filters only if new filter is different than current (Stefan Berger),
  nwfilter: Force instantiation of filters upon driver reload (Stefan Berger),
  qemu: Refactor qemuMonitorGetBlockInfo (Jiri Denemark),
  Update VIRT_CONTROL audit record with pid. (Marcelo Cerri),
  build: allow for 64-bit pid in daemon (Eric Blake),
  daemon: convert virRun to virCommand (Eric Blake),
  hash: minor touchups (Eric Blake),
  Replace hashing algorithm with murmurhash (Daniel P. Berrange),
  Rename hash.h and hash.c to virhash.h and virhash.c (Daniel P. Berrange),
  Convert various virHash functions to use size_t / uint32 (Daniel P. Berrange),
  Introduce new API for generating random numbers (Daniel P. Berrange),
  schema: Relax schema for domain name (Peter Krempa),
  storage: Support different wiping algorithms (Michal Privoznik),
  lxc: export container=lxc-libvirt for systemd (Eric Blake),
  Add virFileTouch for creating empty files (Daniel P. Berrange),
  virsh: Expose new VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE flag (Michal Privoznik),
  snapshots: Introduce VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE flag (Michal Privoznik),
  qemu_agent: Create file system freeze and thaw functions (Michal Privoznik),
  qemu: Emit bootindex even for direct boot (Jiri Denemark),
  metadata: group metadata next to description (Eric Blake),
  build: simplify xmlFreeNode usage (Eric Blake),
  Allow custom metadata in domain configuration XML (Zeeshan Ali (Khattak)),
  virCommandProcessIO(): make poll() usage more robust (Laszlo Ersek),
  Allow choice of shutdown method via virsh (Daniel P. Berrange),
  Wire up QEMU agent to reboot/shutdown APIs (Daniel P. Berrange),
  hashtest: Initialize variable in virHashEqual test (Michal Privoznik),
  Add test case for virHashEqual function (Stefan Berger),
  Compare two hash tables for equality (Stefan Berger),
  virsh: let domif-{get,set}link take target name (Taku Izumi),
  maint: cleanup qemu capabilities (Eric Blake),
  maint: enforce use of _LAST marker (Eric Blake),
  API: make declaration of _LAST enum values conditional (Eric Blake),
  error: drop old-style error reporting (Eric Blake),
  util: use new virTypedParameter helpers (Eric Blake),
  util: add new file for virTypedParameter utils (Eric Blake),
  lxc: use live/config helper (Eric Blake),
  build: silence some compiler warnings from gnulib (Eric Blake),
  Rename APIs for fetching UNIX socket credentials (Daniel P. Berrange),
  Add virGetGroupName to convert from GID to group name (Daniel P. Berrange),
  Remove duplicate call to virNetSASLSessionGetIdentity (Daniel P. Berrange),
  Also retrieve GID from SO_PEERCRED (Daniel P. Berrange),
  Added capability checking for block <iotune> setting. (Martin Kletzander),
  qemu: Introduce inactive PCI device list (Osier Yang),
  Permission change for systemtap examples. (Martin Kletzander),
  Add new attribute wrpolicy to <driver> element (Deepak C Shetty),
  tests: avoid dirname in tests (Eric Blake),
  qemu: Add support for host CPU modes (Jiri Denemark),
  Taint domains configured with cpu mode=host-passthrough (Jiri Denemark),
  cpu: Update guest CPU in host-* mode (Jiri Denemark),
  Add support for cpu mode attribute (Jiri Denemark),
  cpu: Optionally forbid fallback CPU models (Jiri Denemark),
  tests: Print XML file name in verbose CPU test (Jiri Denemark),
  docs: Expose alias tag in domain RNG schema (Osier Yang),
  docs: Add readonly to filesystem RNG schema (Osier Yang),
  conf: Remove do-nothing validation functions (Michael Ellerman),
  Make drive unit attribute optional in the XML schema (Michael Ellerman),
  virsh domiflist: change output (Taku Izumi),
  export virNetDevGetVirtualFunctions as a private symbol (Paolo Bonzini),
  virsh: Two new fields for command domblklist (Osier Yang),
  qemu: Support copy on read for disk (Osier Yang),
  Added check for maximum number of vcpus exceeding topology limit (Martin Kletzander),
  build: update to latest gnulib (Eric Blake),
  Rsync keymaps.csv file with GTK-VNC (Daniel P. Berrange),
  Re-write LXC controller end-of-file I/O handling yet again (Daniel P. Berrange),
  Allow 10 chars for domain IDs & 30 chars for names in virsh list (Daniel P. Berrange),
  virsh: New command print summary of all virtual interfaces (Osier Yang),
  Added new option to virsh net-dumpxml called --inactive (Shradha Shah),
  Functionality to implicitly get interface pool from SR-IOV PF. (Shradha Shah),
  Adding the element pf to network xml. (Shradha Shah),
  Added Function virNetDevGetVirtualFunctions (Shradha Shah),
  Added function pciSysfsFile to enable access to the PCI SYSFS files. (Shradha Shah),
  Add test cases for new ways to access variables in filters (Stefan Berger),
  Address side effects of accessing vars via index (Stefan Berger),
  Add access to elements of variables via index (Stefan Berger),
  Introduce possibility to have an iterator per variable (Stefan Berger),
  Optimize the elements the iterator visits. (Stefan Berger),
  apparmor: Mark pid parameter as unused (Jiri Denemark),
  Change security driver APIs to use virDomainDefPtr instead of virDomainObjPtr (Daniel P. Berrange),
  snapshot: allow reuse of existing files in disk snapshot (Eric Blake),
  PolicyKit: Check auth before asking client to obtain it (Jim Fehlig),
  qemu: add new disk device='lun' for bus='virtio' & type='block' (Laine Stump),
  qemu: add capabilities flags related to SG_IO (Laine Stump),
  qemu: one more client to live/config helper (Eric Blake)
- Cleanups:
  python: drop unused function (Eric Blake),
  python: drop redundant function (Eric Blake),
  Replace TAB with white spaces (Osier Yang),
  qemu: Clenup qemuDomainSetInterfaceParameters (Michal Privoznik),
  conf: remove duplicate call to VIR_FREE(info->alias) (Laine Stump),
  xml: fix struct typos (Eric Blake),
  Remove tabs from libvirt_public.syms & enforce it (Daniel P. Berrange)

### 0.9.9: Jan 7 2012

- Features:
  Add new API virDomain{S,G}etInterfaceParameters (Hu Tao),
  Add new API virDomain{G,S}etNumaParameters (Hu Tao),
  Add support for ppc64 qemu (Prerna Saxena, Bharata B Rao, Michael Ellerman),
  Support Xen domctl v8 (Jim Fehlig)
- Documentation:
  Fix typos in messages. (Yuri Chornoivan),
  docs: re-fix stray / (Eric Blake),
  virsh: move version command to host group (Lai Jiangshan),
  docs: Move 'echo' command description into the generic commands section (Satoru SATOH),
  docs: Move 'send-key' command description into the domain commands section (Satoru SATOH),
  docs: remove stray / (Eric Blake),
  docs: fix missing / in xml examples (Eric Blake),
  docs: improve virsh domxml-*-native command docs (Alex Jia),
  docs: document <qemu:commandline> xml (Eric Blake),
  Fix typo in storage pool documentation (Christophe Fergeau),
  docs: tweak 'virsh edit' wording (Eric Blake),
  docs: document <address> elements in one place (Eric Blake),
  threads: Document spurious wakeups on virCondWait (Michal Privoznik)
- Portability:
  build: fix mingw virCommand build (Eric Blake),
  tests: avoid test failure on rawhide gnutls (Eric Blake),
  build: drop check for ANSI compiler (Eric Blake),
  Fix build on s390(x) and other stange arches (Daniel Veillard),
  Require avahi as an rpm dependancy (Daniel Veillard),
  Disable python explicitly in mingw32 autobuild (Daniel P. Berrange),
  build: disable dtrace on non-Linux builds (Eric Blake),
  build: let autobuild check more code (Eric Blake),
  maint: allow bootstrap in a sandbox (Eric Blake)
- Bug Fixes:
  qemu: Avoid memory leaks on qemuParseRBDString (Alex Jia),
  qemu: fix a bug in numatune (Hu Tao),
  qemu: fix use-after-free regression (Eric Blake),
  seclabel: fix regression in libvirtd restart (Eric Blake),
  command: Discard FD_SETSIZE limit for opened files (Michal Privoznik),
  Fix xenstore serial console path for HVM guests (Jim Fehlig),
  schemas: Allow '.' in CPU feature name (Jiri Denemark),
  virCommand: Properly handle POLLHUP (Michal Privoznik),
  virCPUDefCopy forgot to copy NUMA topology (Jiri Denemark),
  qemu: fix block stat naming (Eric Blake),
  domiftune: clean up previous patches (Eric Blake),
  virsh: Fix checking for reconnect conditions (Peter Krempa),
  qemu: Fix bandwidth memory leak on failure (Alex Jia),
  qemu: fix blkio memory leak on failure (Eric Blake),
  remove a static limit on max domains in python bindings (Daniel Veillard),
  python: Fix problems of virDomain{Set, Get}BlockIoTune bindings (Alex Jia),
  qemu: fix inf-loop in blkio parameters (Eric Blake),
  qemu: Keep list of USB devices attached to domains (Michal Privoznik),
  qemu: Release the lock on domobj if fails on finding the disk path (Osier Yang),
  virsh: plug mem leaks in domxml-*-native (Alex Jia),
  console: plug memory leaks (Alex Jia),
  rpc: handle param_int, plug memory leaks (Eric Blake),
  python: plug memory leak on libvirt_virConnectOpenAuth (Alex Jia),
  Only add the timer when a callback is registered (Daniel P. Berrange),
  qemu: detect truncated file as invalid save image (Eric Blake),
  qemu: Don't drop hostdev config until security label restore (Michal Privoznik),
  Fix default migration speed in qemu driver (Jim Fehlig),
  qemu: Fix race between async and query jobs (Jiri Denemark),
  qemu: Do not free the device from activePciHostdevs if it's in use (Osier Yang),
  qemu: Honor the original properties of PCI device when detaching (Osier Yang),
  spec: fix inverted logic on sanlock (Wen Congyang),
  tests: plug memory leak on linuxTestNodeInfo (Alex Jia),
  storage: Fix a potential crash when creating vol object (Osier Yang),
  qemu: Disable EOF processing during qemuDomainDestroy (Jiri Denemark),
  virsh: Free returned MIME type string (Michal Privoznik),
  storage: Activate/deactivate logical volumes only on local node (Rommer),
  security: don't try to label network disks (Josh Durgin),
  test: replace deprecated "fedora-13" machine with "pc-0.13" (Laine Stump),
  network: don't add iptables rules for externally managed networks (Laine Stump),
  threadpool: Use while loop on virCondWait (Michal Privoznik),
  virsh: plug memory leak on cmdDomblklist (Alex Jia),
  fix error when parsing ppc64 models on x86 host (Stefan Berger),
  fix memory leak in src/nodeinfo.c (Stefan Berger),
  threadpool: Don't wait on condition if pool has no workers (Michal Privoznik),
  bridge: Fix forward delay APIs (Jiri Denemark),
  virsh: return correct value from cmdDomIfGetLink (Peter Krempa),
  virsh: plug memory leak on cmdDomIfGetLink() sucessful path (Alex Jia),
  virsh: plug memory leak on cmdBlkdeviotune() sucessful path (Alex Jia),
  test: fix potential lock corruption in test driver (Laine Stump),
  spec: fix logic bug in deciding to turn on cgconfig (Eric Blake),
  When checking nttyFDs to see if it is != 1, be sure to use '1' and not '-1' (Daniel P. Berrange),
  Fix installation of libvirt-guests.service (Daniel P. Berrange)
- Improvements:
  Implement DNS SRV record into the bridge driver (Michal Novotny),
  seclabel: honor device override in selinux (Eric Blake),
  seclabel: allow a seclabel override on a disk src (Eric Blake),
  seclabel: extend XML to allow per-disk label overrides (Eric Blake),
  seclabel: move seclabel stuff earlier (Eric Blake),
  seclabel: refactor existing domain_conf usage (Eric Blake),
  schema: rewrite seclabel rng to match code (Eric Blake),
  domiftune: Enable the virDomain{S,G}etInterfaceParameters in virsh (Hu Tao),
  domiftune: Add virDomain{S,G}etInterfaceParameters support to qemu driver (Hu Tao),
  domiftune: Add a util function virDomainNetFind (Hu Tao),
  domiftune: Add support of new APIs to the remote driver (Hu Tao),
  domiftune: virDomain{S,G}etInterfaceParameters: the main entry points (Hu Tao),
  daemon: clean up daemonization (Eric Blake),
  tests: fix schema checks sorting (Eric Blake),
  qemu: Support for overriding NOFILE limit (Michal Privoznik),
  virsh: Use vshWatchJob in cmdManagedSave (Michal Privoznik),
  virsh: Use vshWatchJob in cmdSave (Michal Privoznik),
  virsh: Use vshWatchJob in cmdDump (Michal Privoznik),
  virsh: Move job watch code to a separate function (Michal Privoznik),
  qemuhelptest: Add new qemuCap flag (Michal Privoznik),
  qemu: Support readonly filesystem passthrough (Osier Yang),
  nwfilter: Do not require DHCP requests to be broadcasted (Stefan Berger),
  tests: run schema checks in sorted order (Eric Blake),
  tests: Add fake PPC64 emulator for QEMU testing (Michael Ellerman),
  qemu: Add spapr-vio address assignment (Michael Ellerman),
  Add New address type spapr-vio to domain.rng (Bharata B Rao),
  Add address type for SPAPR VIO devices (Michael Ellerman),
  qemu: Add a capability flag for -no-acpi (Michael Ellerman),
  add new command numatune to virsh (Hu Tao),
  Implement virDomain{G, S}etNumaParameters for the qemu driver (Hu Tao),
  Add virDomain{G, S}etNumaParameters support to the remote driver (Hu Tao),
  use cpuset to manage numa (Hu Tao),
  Add functions to set/get cgroup cpuset parameters (Hu Tao),
  virsh: simplify printing of typed parameters (Eric Blake),
  Hide use of timers for domain event dispatch (Daniel P. Berrange),
  Remove decl of all APIs related to domain event callbacks & queues (Daniel P. Berrange),
  Remove all domain event structs from header (Daniel P. Berrange),
  Convert drivers to thread safe APIs for adding callbacks (Daniel P. Berrange),
  Add APIs to allow management of callbacks purely with virDomainEventState (Daniel P. Berrange),
  Return count of callbacks when registering callbacks (Daniel P. Berrange),
  Convert Xen & VBox drivers to use virDomainEventState (Daniel P. Berrange),
  nwfilter: do not create ebtables chain unnecessarily (Stefan Berger),
  migration: Add more specific error code/message on migration abort (Peter Krempa),
  virsh: Add option to undefine storage with domains (Peter Krempa),
  python: Expose blockPeek and memoryPeek in Python binding (Osier Yang),
  virsh: support multifunction in attach-disk (KAMEZAWA Hiroyuki),
  python: Fix export of virDomainSnapshotListChildrenNames (Peter Krempa),
  Provide a helper method virDomainLiveConfigHelperMethod (Lei Li),
  virsh: Print error message if argument parsing fails for cmdNodesuspend (Peter Krempa),
  build: follow directory install conventions (Eric Blake),
  Fix make uninstall (Dave Allan),
  qemu: Prepare to cater for more general address assignment (Michael Ellerman),
  qemu: Add address in qemuBuildChrDeviceStr() on pseries (Michael Ellerman),
  qemu: Use spapr-vscsi on pseries machine type (Michael Ellerman),
  network: allow '-' in model name (Eric Blake),
  cpu: Add cpu flags supported by newest qemu (Peter Krempa),
  Pass the VM's UUID into the nwfilter subsystem (Stefan Berger),
  nwfilter: cleanup return codes in nwfilter subsystem (Stefan Berger),
  spec: make it easier to autoreconf when building rpm (Eric Blake),
  Ensure to prefix %{buildroot} when overriding systemd install location (Daniel P. Berrange),
  Add ppc64 specific definitions to domain.rng (Bharata B Rao),
  Clean up qemuBuildCommandLine to remove x86-specific (Prerna Saxena),
  Modify the tests/nodeinfotest.c to use sysfs in addition (Prerna Saxena),
  Use sysfs to gather host topology, in place of (Prerna Saxena)
- Cleanups:
  network_conf: Fix whitespace to pass syntax-check (Peter Krempa)

### 0.9.8: Dec 8 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 adreses. (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() sucessful 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 8 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 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 3 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 4 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:
  Explicitely 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 modifing 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 superflous 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 6 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 allwo "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 5 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 4 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 adjusments (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 mangement 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 4 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)

### 0.8.6: Nov 30 2010

- Features:
  new API virDomainIsUpdated (Osier Yang),
  Add support for iSCSI target auto-discovery (Daniel P. Berrange),
  QED: Basic support for QED images (Adam Litke),
  Introduce a virDomainOpenConsole API (Daniel P. Berrange),
  Support for SPICE graphics (Daniel P. Berrange),
  Add a sysinfo and SMBIOS support (Daniel Veillard),
  Implement virsh qemu-monitor-command. (Chris Lalancette)
- Documentation:
  updated c# bindings with arnauds latest changes (Justin Clift),
  Fix spelling of virBufferAsprintf (Jiri Denemark),
  Fix broken XML entity for '>' (Philipp Hahn),
  removed outdated reference to virt-mem (Justin Clift),
  Add doc for missed options of migrate (Osier Yang),
  add doc for missed parameters of attach-disk (Osier Yang),
  update virsh manual (Osier Yang),
  updated virsh command reference with libvirt.org links (Justin Clift),
  Generate HACKING from docs/hacking.html.in (Matthias Bolte),
  Prepare hacking.html.in to generate HACKING from it (Matthias Bolte),
  updated csharp pages with latest info (Justin Clift),
  trivial typo fix (Justin Clift),
  added virsh command reference page. (Justin Clift),
  rpm: Fix summary wording (Cole Robinson),
  Augment bug reporting documentation (Daniel Veillard),
  virsh: fix incorrect help text mentioning non-existent network 'id' (Justin Clift),
  Fix off-by-1 in todo page generator (Daniel P. Berrange),
  Fix comment for video tag in domain RNG schema (Daniel P. Berrange),
  fix typo (Eric Blake)
- Portability:
  remote: Fix TLS transport on Windows (Matthias Bolte),
  Rename 'remove' param to 'toremove' to avoid clash with stdio.h (Daniel P. Berrange),
  virt-aa-helper: Fix several compile errors (Matthias Bolte),
  maint: improve i18n on non-Linux (Eric Blake),
  nwfilter: use /bin/sh rather than requiring bash (Eric Blake),
  Use python discovered through env instead of hardcoding a path (Matthias Bolte),
  esx: Avoid warnings about breaking strict-aliasing rules on FreeBSD (Matthias Bolte),
  Make sure struct sockaddr_in is defined on FreeBSD (Matthias Bolte),
  configure: Disable FS storage driver if mntent.h is not available (Matthias Bolte),
  daemon: Include stdlib.h in dispatch.c (Matthias Bolte),
  xen: work with xen 4.0.1 headers (Eric Blake),
  Fix build with polkit 0 (Jim Fehlig),
  xen: work with ia64 MAX_VIRT_CPUS of 64 (Eric Blake),
  build: cleanup declaration of xen tests. (Diego Elio Pettenò),
  qemu: check compression program availability of virsh save and dump (KAMEZAWA Hiroyuki)
- Bug Fixes:
  correct the arguments of migrate_speed (Wen Congyang),
  Fix memory leaks in audit & VirtualBox code (Daniel P. Berrange),
  Fix host CPU counting on unusual NUMA topologies (Jiri Denemark),
  security, storage: plug memory leaks for security_context_t (Eric Blake),
  network: plug memory leak (Eric Blake),
  qemu: plug memory leak (Eric Blake),
  Always close drivers when a virConnectPtr is released (Matthias Bolte),
  libvirtd: fix bug when shrinking number of clients (Eric Blake),
  Fix 32-bit int truncation in QED header check (Daniel P. Berrange),
  Fix error handling in virsh when listing storage volumes (Daniel P. Berrange),
  Fix parsing of port attribute in storage XML configuration (Daniel P. Berrange),
  Don't catch SIGCHLD in libvirtd (Daniel P. Berrange),
  Ensure logfile isn't truncated by shutdown message. (Daniel P. Berrange),
  xend: Escape reserved sexpr characters (Cole Robinson),
  xend: urlencode: Properly escape '&' (Cole Robinson),
  conf: Fix parsing python style triple quotes (Cole Robinson),
  nwfilter: re-order lock grabbed by IP addr. learn thread (Stefan Berger),
  virExec: fix bug in setting up child stderr/out with /dev/null (Daniel P. Berrange),
  Fix a failure to restore SELinux label for character devices (Daniel Veillard),
  nwfilter: also purge ip(6)tables rules before detecting IP address (Stefan Berger),
  Fix ipv4-addr definition in interface.rng (Laine Stump),
  remote_driver.c: fix non-literal format strings w/o args (Laine Stump),
  ignore SELinuxSetFilecon error in SELinuxSetSecurityFileLabel if on nfs (Laine Stump),
  Fix reference counting bug in virsh console (Daniel P. Berrange),
  Fix busy-wait loop on closed file descriptor (Daniel P. Berrange),
  Fix LXC container console device setup (Daniel P. Berrange),
  rpm: fix /var/lib/libvirt permissions (Eric Blake),
  xencapstest: Don't fail when Xen is installed (Matthias Bolte),
  virsh: fix non-literal string format (Laine Stump),
  Fix syntax-check error in domain.rng (Matthias Bolte),
  qemu: Fix non-literal format string (Jiri Denemark),
  macvtap: libvirtd forgot macvtap dev name when restarted (Stefan Berger),
  tests: fix daemon-conf testing failure (Osier Yang),
  Fix virPipeReadUntilEOF on more than 1024 bytes of data (Daniel Veillard),
  Misc error handling fixes in text mode monitor commands (Daniel P. Berrange),
  Ignore open failures when relabelling disk images (Daniel P. Berrange),
  Treat failure to relabel stdin_path as non-fatal on NFS (Daniel P. Berrange),
  qemu: add the USB devices to the cgroup whitelist (Diego Elio Pettenò),
  802.1Qbg: use pre-associate state at beginning of inc. migr (Stefan Berger)
- Improvements:
  Log client errors in libvirtd at debug priority,
  maint: prohibit most uses of xmlGetProp (Eric Blake),
  maint: ensure syntax check exceptions are distributed (Eric Blake),
  Implementations of virDomainIsUpdated for drivers except qemu (Osier Yang),
  implement callback function for qemu driver (Osier Yang),
  implement the remote protocol (Osier Yang),
  implement public API virDomainIsUpdated (Osier Yang),
  define internal driver API (Osier Yang),
  tests: Fix dispatching internal error reports (Cole Robinson),
  Improve SCSI volume name generation (Daniel P. Berrange),
  Fix error codes returned when a storage pool is inactive (Daniel P. Berrange),
  Check whether pools are already active upon libvirtd startup (Daniel P. Berrange),
  Allow iSCSI IQN to be set with find-storage-pool-sources-as command (Daniel P. Berrange),
  Switch the virsh XML generation to use virBuffer instead of virAsprintf (Daniel P. Berrange),
  Stop iSCSI targets automatically logging back in after logout (Daniel P. Berrange),
  Refactor iSCSI driver code to facilitate future changes (Daniel P. Berrange),
  Ensure virExec preserves logging environment (Daniel P. Berrange),
  Include a thread identifier in log messages (Daniel P. Berrange),
  qemu: setvcpus: Save config changes to disk (Cole Robinson),
  qemu: setvcpus: Simplify altering the persistent config (Cole Robinson),
  qemu: setvcpus: Fix maxvcpus check (Cole Robinson),
  conf: domain: Improve vcpus validation reporting (Cole Robinson),
  Make state driver device hotplug/update actually transient (Cole Robinson),
  domain_conf: Add virDomainObjSetDefTransient (Cole Robinson),
  buf: Simplify virBufferEscapeString (Cole Robinson),
  conf: Convert ParseString to use STRPREFIX (Cole Robinson),
  schemas: domain: Add more valid file path chars (Cole Robinson),
  qed: Minor updates to QED support patches (Adam Litke),
  Support for probing qed image metadata (Adam Litke),
  storage_file: Add a new flag to mark backing files that are safe to probe (Adam Litke),
  Allow probing of image formats without version information (Adam Litke),
  maint: tighten strncmp syntax check (Eric Blake),
  capabilities, cpu: use new array API (Eric Blake),
  memory: make it easier to avoid quadratic scaling of arrays (Eric Blake),
  memory: make it safer to expand arrays (Eric Blake),
  build: fix autobuild failures on gcov upgrade (Eric Blake),
  virt-aa-helper: translate error messages (Eric Blake),
  maint: update to latest gnulib (Eric Blake),
  deprecate fclose() and introduce VIR_{FORCE_}FCLOSE() (Stefan Berger),
  qemu: record timestamp in qemu domain log (Osier Yang),
  virsh: add net-info command (Osier Yang),
  interface.rng: Make miimon and arpmon optional for bond interfaces (Laine Stump),
  macvtap: convert send / recv function to use libnl (Stefan Berger),
  configure: Remove bashism and replace 'test ==' with 'test =' (Matthias Bolte),
  virsh: Fix compile error in VPATH build (Matthias Bolte),
  qemu: Remove unnecessary quoting from the process name argument (John Morrissey),
  phyp: Don't do a flags check in the storage driver (Matthias Bolte),
  qemu: Add qemu-system-s390x to the emulators list (Matthias Bolte),
  macvtap: convert nl msg construction to use libnl (Stefan Berger),
  Do a better job of validating IP and MAC addresses in network.rng (Laine Stump),
  virt-aa-helper should require uuid in XML (Jamie Strandboge),
  esx: Support SMBIOS host mode (Matthias Bolte),
  Wire up virDomainOpenConsole for LXC, Xen and UML (Daniel P. Berrange),
  Re-write virsh console to use streams (Daniel P. Berrange),
  Convert daemon/events.c to use virMutex and virThread (Daniel P. Berrange),
  Introduce portability APIs for creating threads (Daniel P. Berrange),
  Support virDomainOpenConsole with QEMU (Daniel P. Berrange),
  Add a generic internal API for handling any FD based stream (Daniel P. Berrange),
  Lower logging level in remote driver streams (Daniel P. Berrange),
  Remote driver client and server for virDomainOpenConsole (Daniel P. Berrange),
  Support callbacks on virStream APIs in remote driver client (Daniel P. Berrange),
  virsh: supply long option for -V (Eric Blake),
  qemu: Add flag to force a CDROM eject (Cole Robinson),
  Allow non-file disk backingStores (Adam Litke),
  bye to close(), welcome to VIR_(FORCE_)CLOSE() (Stefan Berger),
  esx: Add support for memtune/min_guarantee (Matthias Bolte),
  schema: Move timer element inside clock (Jiri Denemark),
  Misc test case fixes for SPICE (Daniel P. Berrange),
  virsh: Add .xml suffix to tmp files used in *edit commands (Jiri Denemark),
  Support SPICE channel security options (Daniel P. Berrange),
  Support multiple QXL video cards (Daniel P. Berrange),
  Define XML syntax for password expiry (Daniel P. Berrange),
  Add SPICE support for QEMU driver configuration file (Daniel P. Berrange),
  Support automatic port number allocation for SPICE (Daniel P. Berrange),
  Implement QEMU/KVM QXL video card support in QEMU driver (Daniel P. Berrange),
  Add a graphics type for SPICE protocol (Daniel P. Berrange),
  Add a QXL graphics card type to domain XML schema (Daniel P. Berrange),
  Show compiled in options in virsh -V (Daniel Veillard),
  lxc: Exit on first error in lxcDomainGetMemoryParameters (Matthias Bolte),
  Allow virDomainGetMemoryParameters on read-only connections (Matthias Bolte),
  Add a new test for sysinfo and smbios handling (Daniel Veillard),
  Add sysinfo/smbios support to the QEmu driver (Daniel Veillard),
  Read the host sysinfo for the QEmu driver (Daniel Veillard),
  Add smbios element to schema and configuration to HVM os (Daniel Veillard),
  Sysinfo parsing and saving to/from configuration files (Daniel Veillard),
  Sysinfo extension to relax-ng schemas (Daniel Veillard),
  Change calling conventions in remote driver client internals (Daniel P. Berrange),
  util: Add helper function to build timestamp string (Osier Yang),
  misc: encode the Emacs suggstions from HACKING into a .dir-locals.el file (Diego Elio Pettenò),
  add compression support for "virsh dump" (KAMEZAWA Hiroyuki),
  qemu_driver: add virCgroupMounted (Lai Jiangshan),
  OpenVZ: Fix some overwritten error codes (Guido Günther),
  OpenVZ: take veid from vmdef-name when defining new domains (Guido Günther)
- Cleanups:
  tests: Fix detection of expected errors (Jiri Denemark),
  Remove bogus check for Xen in example program (Daniel P. Berrange),
  build: enforce files.h usage (Eric Blake),
  maint: sort exports (Eric Blake),
  Remove bogus port handling code in virsh (Daniel P. Berrange),
  Remove trailing ':' from timestamp (Daniel P. Berrange),
  Log all errors at level INFO to stop polluting syslog (Daniel P. Berrange),
  daemon: use safer memory growth macros (Eric Blake),
  maint: avoid remaining sprintf uses (Eric Blake),
  maint: use gnulib configmake rather than open-coding things (Eric Blake),
  replace last instances of close() (Stefan Berger),
  daemon: fix indention problem in daemon/libvirt.c (Osier Yang),
  qemu: fix typos in qemu_monitor_text.c (Osier Yang),
  re-indent network.rng following structural change (Laine Stump),
  Put network.rng contents inside grammar for uniformity with other RNGs (Laine Stump),
  maint: Commit .gitignore sorting done by bootstrap (Jiri Denemark),
  xen-proxy: Remove it entirely and use libvirtd instead (Matthias Bolte),
  qemu: Remove redundant slash in save directory path (Matthias Bolte),
  virterror: supply missing spaces (Eric Blake),
  Fix several warnings about a non-literal format string (Jiri Denemark),
  build: avoid compiler warning in xen code (Eric Blake)

### 0.8.5: Oct 29 2010

- Features:
  Enable JSON and netdev features in QEMU > 0.13 (Daniel P. Berrange),
  framework for auditing integration (Daniel P. Berrange),
  framework for DTrace/SystemTap integration (Daniel P. Berrange),
  Setting the number of vcpu at boot (Eric Blake),
  Enable support for nested SVM (Daniel P. Berrange),
  Virtio plan9fs filesystem QEMU (Daniel P. Berrange),
  Memory parameter controls (Nikunj A. Dadhania),
  portability to OS-X (Justin Clift)
- Documentation:
  virsh: improve the help description for managedsave and start (Justin Clift),
  updated the C# bindings page with arnauds latest changes (Justin Clift),
  update ruby bindings maintainer to chris lalancette (Justin Clift),
  reworded and reordered the bindings page, plus minor tweaks (Justin Clift),
  Fix xen API documentation (Philipp Hahn),
  added a table of contents to the first 11 docs files (Justin Clift),
  reformated the bindings page html markup to match other pages (Justin Clift),
  revamp api_extension example, using vcpu patch series (Eric Blake),
  install the generated html files when make install is run (Justin Clift),
  Fix documentation for virEventAddTimeout() (Philipp Hahn),
  esx: Add documentation about certificates and connection problems (Matthias Bolte),
  added a table of contents to the new c sharp bindings page (Justin Clift),
  removed old changelog file, as it is no longer relevant (Justin Clift),
  Update comments for the memory tunables macros (Nikunj A. Dadhania),
  added initial page for c# binding, with links to it (Justin Clift),
  virsh: consolidate memtune docs (Eric Blake),
  Update docs for memory parameters and memtune command (Nikunj A. Dadhania),
  document how to disable memballoon (Eric Blake),
  Update todo list file to point at bugzilla/website (Daniel P. Berrange),
  virsh: update comment about parsing (Eric Blake),
  virsh: document options in man page (Eric Blake),
  Fixes for documentation extraction (Daniel Veillard),
  Add automatic generation of a todo item page (Daniel P. Berrange),
  nwfilter: Add 2nd example to the html docs (Stefan Berger),
  nwfilter: Extend docs with info about the state attribute (Stefan Berger),
  vcpu: improve cpuset attribute (Eric Blake),
  nwfilter: Extend docs with information about comment attr. (Stefan Berger),
  grammar cleanups on logging examples (Eric Blake),
  Fix spelling of Xen in comments (Philipp Hahn),
  reworked the policykit patch submitted by Patrick Dignan (Justin Clift),
  fix the xml validity errors regarding name and id (Justin Clift),
  improve wording for the dev guide (Justin Clift),
  add the app dev guide (Justin Clift)
- Portability:
  mingw: Add body for virFork and remove double virDriverLoadModule export (Matthias Bolte),
  daemon: exclude requirement for probes.h on systems without systemtap (Justin Clift),
  build: skip xenapi driver when building for RHEL (Eric Blake),
  build: fix mingw build (Eric Blake),
  build: require pkg-config for bootstrap (Eric Blake),
  configure: disable network and storage-fs drivers on mac os x (Justin Clift),
  build: fix example build on MacOS X (Eric Blake),
  mpath: disable devmapper-multipath checking on non-linux (Justin Clift),
  mac os x: use awk selected by build system rather than first in path (Justin Clift),
  virtualbox: fix a typo in the expected location on mac os x (Justin Clift),
  nwfilter: Don't compile nwfilter driver on other systems than Linux (Stefan Berger),
  nwfilter: add a missing define, so libvirtd builds on macos x (Justin Clift),
  build: avoid non-portable IPv6 struct member, for MacOS X (Eric Blake),
  virsh: change wexitstatus order to allow compilation on mac osx (Justin Clift),
  build: use portable sed expressions (Eric Blake)
- Bug Fixes:
  eliminate possibility of a double-closed file descriptor (Stefan Berger),
  qemu: check for vm after starting a job (Eric Blake),
  Only attempt removal of the rule allowing tftp if it was added (Laine Stump),
  qemu: don't use %.3d format for bus/addr of USB devices (Diego Elio Pettenò),
  virsh: fix range of memtune command (Eric Blake),
  qemu: work around dash 0.5.5 bug in managed save (Eric Blake),
  Avoid squashing errors during network startup cleanup path (Daniel P. Berrange),
  xen: Fix domain dump (Jiri Denemark),
  dnsmasq: avoid potential crash (Eric Blake),
  Fix netmask checks for IPv6 in virSocketCheckNetmask (Daniel P. Berrange),
  Don't fail lxc domain start when memory controller support is missing (Guido Günther),
  root_squash: virFileOperation may fail with EPERM too (Dan Kenigsberg),
  qemu: let qemu group look below /var/lib/libvirt/qemu/ (Dan Kenigsberg),
  qemu: Prohibit migration of guests with host devices (Jiri Denemark),
  cpu: Use vendor in baseline CPU only if all hosts use it (Jiri Denemark),
  cpu: Fix vendor for recent CPU models (Jiri Denemark),
  Fix Xen SEXPR generation to properly quote strings containing () (Daniel P. Berrange),
  nwfilter: resolve deadlock between VM ops and filter update (Stefan Berger),
  Don't fail on missing D-Bus (Guido Günther),
  cpu: Remove redundant features (Jiri Denemark),
  xen: Fix virDomain{At,De}tachDevice (Jiri Denemark),
  xen: xenXMDomain*DeviceFlags should obey all flags (Jiri Denemark),
  nwfilter: fix memory leaks (Stefan Berger),
  phyp: Checking for NULL values when building new guest (Eduardo Otubo),
  libvirt-guests: start late and stop early (Jiri Denemark),
  nwfilter bug appearing on big endian machines (Stefan Berger),
  Rebuild network filter for UML guests on updates (Soren Hansen)
- Improvements:
  vbox: Stop hardcoding a single path for VBoxXPCOMC.so (Matthias Bolte),
  Add disk/net resource auditing to QEMU driver (Daniel P. Berrange),
  Add auditing of security label in QEMU driver (Daniel P. Berrange),
  Add auditing of start/stop events to the QEMU driver (Daniel P. Berrange),
  Add printf format attribute annotation to virAuditSend method (Daniel P. Berrange),
  Add audit helper for escaping log message strings (Daniel P. Berrange),
  virsh: use - not _ in memtune option names (Eric Blake),
  build: fix shell detection bug (Eric Blake),
  virsh: improve help text where integers are expected (Eric Blake),
  docs: make the location of the xml catalog file a configure option (Justin Clift),
  Fix build for SystemTap 1.0 (Matthias Bolte),
  Fix formatting of network address in iptables helpers (Daniel P. Berrange),
  virsh: Add option 'model' for attach-interface (Osier Yang),
  qemu: Fix detection of drive readonly option (Jiri Denemark),
  vbox: Fix compile errors due to the virSocketAddr series (Matthias Bolte),
  Don't try to parse a NULL ip address for boot server (Daniel P. Berrange),
  Convert virNetwork to use virSocketAddr everywhere (Daniel P. Berrange),
  Include socket address in client probe data (Daniel P. Berrange),
  Add dtrace static probes in libvirtd (Daniel P. Berrange),
  Add test suite for virSocket APIs (Daniel P. Berrange),
  Ban use of all inet_* functions (Daniel P. Berrange),
  Fix error reporting for virSocketParse (Daniel P. Berrange),
  Expand virSocketFormat to be more flexible (Daniel P. Berrange),
  Fix passing of address family to virSocketParseAddr (Daniel P. Berrange),
  Include length with virSocketAddr data (Daniel P. Berrange),
  audit: simplify declaration (Eric Blake),
  qemu: Exit on first error in qemuDomainGetMemoryParameters (Matthias Bolte),
  virsh: Don't read nparams when virDomainGetMemoryParameters fails (Matthias Bolte),
  Fix formatting of the memtune XML element (Matthias Bolte),
  Add process= support for 'qemu-kvm -name' (John Morrissey),
  nwfilter: avoid dir. enforcement for certain types of rules (Stefan Berger),
  Audit SELinux label assignment. (Miloslav Trmač),
  Audit VM start/stop/suspend/resume (Miloslav Trmač),
  vcpu: remove dead xen code (Eric Blake),
  vcpu: improve support for setting xen vcpu counts (Eric Blake),
  vcpu: improve support for getting xen vcpu counts (Eric Blake),
  vcpu: improve vcpu support in xen command line (Eric Blake),
  vcpu: complete vcpu support in qemu driver (Eric Blake),
  vcpu: improve vcpu support in qemu command line (Eric Blake),
  vcpu: support all flags in test driver (Eric Blake),
  vcpu: add virsh support (Eric Blake),
  vcpu: support maxvcpu in domain_conf (Eric Blake),
  vcpu: make old API trivially wrap to new API (Eric Blake),
  vcpu: implement the remote protocol (Eric Blake),
  vcpu: implement the public APIs (Eric Blake),
  vcpu: define internal driver API (Eric Blake),
  vcpu: add new public API (Eric Blake),
  nwfilter: changes to rules in VM->host table (Stefan Berger),
  esx: Handle non-UTF-8 encoded VMX files (Matthias Bolte),
  Run initgroups() in qemudOpenAsUID() (Dan Kenigsberg),
  memtune: Add min_guarantee to the virsh memtune command (Nikunj A. Dadhania),
  esx: Fix check in esxDomainGetInfo's perf metric handling (Matthias Bolte),
  virsh: add tests for recent cli improvements (Eric Blake),
  virsh: new echo command (Eric Blake),
  virsh: add support for accepting arbitrary argv (Eric Blake),
  esx: Explictly declare VMX file content as UTF-8 (Matthias Bolte),
  esx: Handle name escaping properly (Matthias Bolte),
  nwfilter: prevent filters with different name but same UUID (Stefan Berger),
  new attribute accessmode to filesystem element (Harsh Prateek Bora),
  nwfilter: cut off connections after changing filters (Stefan Berger),
  build: provide URL in 'configure --help' (Eric Blake),
  tests: Honor LIBVIRT_{DEBUG,LOG_*} variables (Jiri Denemark),
  tests: Do not override LIBVIRT_DEBUG variable (Jiri Denemark),
  Improve error reporting in test suites (Daniel P. Berrange),
  virsh: move code into topological order (Eric Blake),
  virsh: simplify top-level option parsing (Eric Blake),
  virsh: add -- support (Lai Jiangshan),
  virsh: support single quote (Lai Jiangshan),
  virsh: add escaper \ for command string parsing (Lai Jiangshan),
  virsh: rework command parsing (Lai Jiangshan),
  virsh: add vshCommandParser abstraction (Lai Jiangshan),
  virsh: better handling the boolean option (Lai Jiangshan),
  virsh: allow zero length arguments (Lai Jiangshan),
  virsh: better support double quote (Lai Jiangshan),
  Add todo.pl and config example to EXTRA_DIST (Daniel P. Berrange),
  Fix several minor problems introduced by the memtune series (Matthias Bolte),
  Remote protocol implementation of virDomainSet/GetMemoryParameters (Nikunj A. Dadhania),
  Adding memtune command to virsh tool (Nikunj A. Dadhania),
  Implement domainGetMemoryParamters for LXC (Nikunj A. Dadhania),
  Implement domainSetMemoryParamters for LXC (Nikunj A. Dadhania),
  Adding memtunables to libvirt-lxc command (Nikunj A. Dadhania),
  Adding memtunables to qemuSetupCgroup (Nikunj A. Dadhania),
  Implement domainGetMemoryParamters for QEmu (Nikunj A. Dadhania),
  Implement domainSetMemoryParamters for QEmu (Nikunj A. Dadhania),
  Implement cgroup memory controller tunables (Nikunj A. Dadhania),
  XML parsing for memory tunables (Nikunj A. Dadhania),
  Adds xml entries for memory tunables in domain schema (Nikunj A. Dadhania),
  Adding structure and defines for virDomainSet/GetMemoryParameters (Nikunj A. Dadhania),
  Set sensible defaults for cpu match and feature policy (Daniel P. Berrange),
  xen: Fix logic bug in xenDaemon*DeviceFlags (Jiri Denemark),
  xen: Make xenDaemon*DeviceFlags errors less confusing (Jiri Denemark),
  Return a suitable error message if we can't find a matching emulator (Guido Günther),
  Pass -n to ip(6)tables (Guido Günther),
  nwfilter: Extend schema to accept state attribute (Stefan Berger),
  nwfilter: Add test case for testing the state attribute (Stefan Berger),
  nwfilter: Instantiate state match in ip(6)tables rules (Stefan Berger),
  nwfilter: Extend XML parser and gen. to support state attr. (Stefan Berger),
  xen: Fix bogus error when attaching a device (Jiri Denemark),
  esx: Add support for virtual serial device network backing (Matthias Bolte),
  phyp: Verify that domain XML contains at least one disk element (Matthias Bolte),
  implement usb and pci hot attach in AppArmor driver (Jamie Strandboge),
  nwfilter: Add a test case for testing the comment attribute (Stefan Berger),
  nwfilter: Extend nwfilter schema to accept comment attrib. (Stefan Berger),
  nwfilter: Instantiate comments in ip(6)tables rules (Stefan Berger),
  nwfilter: Extend XML parser and generator w/ comment attribute (Stefan Berger),
  configure: tweak logic flow of virtport check (Justin Clift),
  Rework configure logic for virtualport support (Stefan Berger),
  nwfilter: report if ip(6)tables rules would not be active (Stefan Berger),
  app-armor: add 'rw' for appropriate devices (Jamie Strandboge),
  add extra tests to virt-aa-helper-test for new '-p' option (Jamie Strandboge),
  esx: Allow '-' in VMX entry names (Matthias Bolte),
  Make SASL work over UNIX domain sockets (Daniel P. Berrange),
  Refactor some daemon code to facilitate introduction of static probes (Daniel P. Berrange),
  nodeinfo: work when hot-plugging is disabled (Eric Blake),
  libvirtd: improve the error message displayed on tls client auth failure (Justin Clift),
  virsh: Use virBuffer for generating XML (Jiri Denemark)
- Cleanups:
  audit: printf warning fix (KAMEZAWA Hiroyuki),
  build: use shorter file names for 'make dist' (Eric Blake),
  maint: fix syntax-check failure of previous patch (Eric Blake),
  maint: ignore new test executable (Eric Blake),
  tests: Silence qemuxml2argv test (Jiri Denemark),
  Remove all use of inet_pton and inet_ntop (Daniel P. Berrange),
  Remove both addrToString methods (Daniel P. Berrange),
  Remove pointless nwIPAddress struct & void *casts (Daniel P. Berrange),
  Remove useless code in error path of getnameinfo() (Daniel P. Berrange),
  maint: sort private sym lists (Eric Blake),
  Rename VIR_DOMAIN_SWAP_HARD_LIMIT to VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT (Matthias Bolte),
  Fix make check on RHEL-5 (Jiri Denemark),
  Don't let daemon-conf test fail when auditing is disabled (Matthias Bolte),
  Fix compile errors in remote.c and newly added audit code (Matthias Bolte),
  Fix symbol exports & remove duplicated libvirt_util.la linkage (Daniel P. Berrange),
  Fix statstest when driver modules are enabled (Daniel P. Berrange),
  build: avoid false positive syntax-check failure (Eric Blake),
  proxy: Fix undefined reference to virClose (Matthias Bolte),
  Introduce VIR_CLOSE to be used rather than close() (Stefan Berger),
  Fix warning about a non-literal format string in qemu_driver.c (Laine Stump),
  test: silence nwfilter test (Stefan Berger),
  tests: fix spurious test failure (Eric Blake),
  memory: fix remote protocol compilation (Eric Blake),
  virsh: poison raw allocation routines (Eric Blake),
  Avoid checking against strncpy in virsh.c (Daniel Veillard),
  Cleanup some tabs issues (Daniel Veillard),
  util: add missing export (Eric Blake),
  virt-aa-helper-test cleanups (Jamie Strandboge),
  python: drop unnecessary conn assignment (Dan Kenigsberg),
  pciFindStubDriver should return NULL on error (Chris Wright),
  tests: silence qemuargv2xmltest noise (Eric Blake),
  tests: clean up qemuargv2xmltest (Eric Blake),
  maint: silence warning from libtool (Eric Blake),
  tests: Fix preprocessor indentation (Jiri Denemark)

### 0.8.4: Sep 10 2010

- Features: various improvements to UML driver (Soren Hansen)
- Documentation:
  docs: fix lxc examples (Serge Hallyn),
  docs: mention domain clock improvements (Eric Blake),
  docs: fix an incorrect keyword in updated hooks page (Justin Clift),
  docs: significant expansion of custom hook script information (Justin Clift)
- Portability:
  cygwin: build fix (Stefan Berger),
  build: allow mingw VPATH build (Eric Blake),
  Generate libvirt_qemu.def from libvirt_qemu.syms for MinGW builds (Matthias Bolte),
  Only require XDR when building libvirtd or the remote driver (Matthias Bolte),
  build-sys: fix build when daemon is disabled by not installing libvirtd.8 (Diego Elio Pettenò)
- Bug Fixes:
  Fix block statistics with newer versions of Xen (Guido Günther),
  Fix off-by-1 in QEMU boot arg array handling (Daniel P. Berrange),
  bridge: Fix static-only DHCP configuration (Jiri Denemark),
  qemu: qemuMonitorJSONEjectMedia(): Fix arguments' type (Luiz Capitulino),
  qemu: qemuMonitorJSONMigrate(): Fix arguments' type (Luiz Capitulino),
  test: Don't overwrite storage volume target path and key (Matthias Bolte),
  build: Fix permissions of sysconfig files (Jiri Denemark),
  virsh: remove driver check from attach-disk command (Ryan Harper),
  phyp: Bad comparison when checking for existing domain name (Eduardo Otubo),
  esx: Fix esxVI_BuildSelectSet's invalid argument check (Matthias Bolte),
  spec: Fix undefined with_libnl (Jiri Denemark),
  Fix handling of sparse NUMA topologies (Daniel P. Berrange),
  qemu: Check for errors when converting PCI address to string (Jiri Denemark),
  qemu: Fix JSON migrate_set_downtime command (Jiri Denemark),
  uml: fix logic bug in checking reply length (Eric Blake),
  xen: Fix scheduler setting problems (Daniel Veillard),
  nodedev: Free the right pointers when getting WWNs fails (Jiri Denemark),
  nodedev: Fix sysfs paths for vport operations (Dave Allan),
  xen: Fix device count on detach (Daniel Berrange),
  remote: Fix incorrect use of private data field (Daniel Berrange),
  esx: Fix memory leak when looking up an non-existing domain by name (Matthias Bolte),
  Fix up qemu domain save/managed save locking. (Chris Lalancette),
  qemu: Release PCI slot when detaching disk and net devices (Jiri Denemark),
  qemu: Re-reserve all PCI addresses on libvirtd restart (Jiri Denemark),
  Close fd's of persistent tap devices (Soren Hansen),
  Fix tunnelled migration with qemu running as qemu:qemu. (Chris Lalancette),
  Fix valgrind complaints when using kill -SIGHUP on libvirtd (Stefan Berger),
  bridge: Fix potential segfault when preparing dnsmasq arguments (Jiri Denemark),
  Fix return value usage (Doug Goldstein),
  nodeinfo: skip offline CPUs (Eric Blake),
  Do not use boot=on on IDE device (Daniel Veillard)
- Improvements:
  virsh: Option for overriding disk type in attach-disk (Jiri Denemark),
  Explicitly pass uml_dir argument to user-mode-linux (Soren Hansen),
  Fix dependancies for remote generated files (Daniel P. Berrange),
  Ensure remote daemon unions are always non-zero length (Daniel P. Berrange),
  Add nwfilter support to UML driver (Soren Hansen),
  esx: Use SessionIsActive when available (Matthias Bolte),
  esx: Fall back to path as key when QueryVirtualDiskUuid isn't available (Matthias Bolte),
  mingw: match recent changes in spec file (Eric Blake),
  Update of localization files (Daniel Veillard),
  esx: Use the VirtualDisk UUID as storage volume key (Matthias Bolte),
  esx: Add .vmdk storage volume creation (Matthias Bolte),
  OpenVZ: add ethernet interface type support (Jean-Baptiste Rouault),
  esx: Rework datastore path parsing and handling (Matthias Bolte),
  esx: Fix generator for string return values (Matthias Bolte),
  build: add some modules (Eric Blake),
  Use global directory as UML's monitorDir for privileged connections (Soren Hansen),
  maint: track moved file (Eric Blake),
  Add tests for Xen's blktap2 implementation (Jim Fehlig),
  Add blktap2 support to xend driver (Jim Fehlig),
  esx: Map the .vmx annotation to the domain XML description (Matthias Bolte),
  esx: Add read-only storage volume access (Matthias Bolte),
  Move libvirt-guests init script and config to tools (Jiri Denemark),
  Support virDomainAttachDevice and virDomainDetachDevice for disks in UML (Soren Hansen),
  Log return value for virConnectGetCapabilities (Daniel P. Berrange),
  Try harder to send RPC error message back to client (Daniel P. Berrange),
  Add explicit warning messages when failing to serialize to XDR (Daniel P. Berrange),
  Allow chardev of type 'file' for UML domains. (Soren Hansen),
  esx: Improve object-by-type lookup performance (Matthias Bolte),
  xen tests: Fix PV-VFB tests with RHEL-5 API (Jiri Denemark),
  xen tests: Fix missing "type ioemu" with rhel5-api (Jiri Denemark),
  nodeinfotest: Print libvirt error on failure (Jiri Denemark),
  xenapi: support xenapi 5.6.0 headers (Eric Blake),
  Add support for -enable-kqemu flag (Daniel P. Berrange),
  esx: Use MD5 sum of mount path as storage pool UUID (Matthias Bolte),
  esx: Make sure dumpxml outputs proper ID for active domains (Matthias Bolte),
  Add actions to virDomainLifecycle enum (Jim Fehlig),
  vbox: add location used in rpmfusion release (Eric Blake),
  storage: add support for Vendor and Model in XML (Patrick Dignan),
  qemu: Fix copy and paste error in warning message (Jiri Denemark),
  nwfilter: extend nwfilter reload support (Stefan Berger),
  esx: Explicitly disable unused floppy devices (Matthias Bolte),
  phyp: Add rudimentary network driver (Eduardo Otubo),
  Make umlConnectTapDevice ask brAddTap for a persistent tap device. (Soren Hansen),
  Make sure all command line arguments get passed to UML (Soren Hansen),
  nwfilter: Discard class D,E IP addresses when sniffing pkts (Stefan Berger),
  nwfilter: serialize execution of scripts with ebtables cmds (Stefan Berger),
  Move the tunnelled migration unix socket to /var/lib/libvirt/qemu (Chris Lalancette),
  qemu: avoid calling the balloon info command if disabled (Daniel Veillard),
  bridge: Add --dhcp-no-override option to dnsmasq (Jiri Denemark),
  esx: Improve VMX file name parsing and formatting (Matthias Bolte),
  esx: Split VMX code into a general and an ESX specific part (Matthias Bolte),
  allow memballoon type of none to desactivate it (Daniel Veillard),
  Add a detailed message when tap device add fails (Doug Goldstein),
  qemu: Hack around asynchronous device_del (Jiri Denemark),
  build-sys: only build the test programs during the check phase. (Diego Elio Pettenò),
  Add "ubd" to the list of disk prefixes (Soren Hansen),
  Extend virSocketParseAddr() to allow a NULL result pointer (Daniel Veillard),
  bootloader_args is named bootargs in xen-xm (Philipp Hahn),
  Fix return value usage (Doug Goldstein),
  qemu: improve error if tun device is missing (Doug Goldstein),
  build: rerun bootstrap if po/Makevars got nuked (Eric Blake)
- Cleanups:
  Remove hack to get static binaries in DV environment (Daniel Veillard),
  build: avoid uninitialized variable warning (Eric Blake),
  vbox: factor a large function (Eric Blake),
  lxc: avoid large stacks with veth creation (Eric Blake),
  openvz: use virAsprintf to avoid large stacks (Eric Blake),
  openvz: formatting cleanups (Eric Blake),
  network: use virAsprintf when appropriate (Eric Blake),
  Move hextobin as virHexToBin to util.c (Matthias Bolte),
  Rename qemudShrinkDisks to virDomainDiskRemove and move to domain_conf.c (Soren Hansen),
  xml2sexprtest: Remove graphics from unrelated tests (Jiri Denemark),
  xenapi: Fix compile error in previous commit (Matthias Bolte),
  qemu: Remove code duplication (Jiri Denemark),
  vbox: factor a large function (Eric Blake),
  xenapi: avoid sprintf (Eric Blake),
  storage: avoid s[n]printf (Eric Blake),
  maint: whitespace cleanups (Eric Blake),
  build: delete dead comments (Eric Blake),
  nwfilter: use consistent OOM reporting (Eric Blake),
  build: fix compiler warning (Eric Blake),
  build: fix AppArmor compilation (Jamie Strandboge),
  Avoid unnecessary bootstrap runs in VPATH builds (Jiri Denemark),
  maint: update an email address preference (Eric Blake),
  phyp: refactor phypListDomainsGeneric to eliminate buffer overflow (Eduardo Otubo)

### 0.8.3: Aug 4 2010

- Features:
  esx: Support vSphere 4.1 (Matthias Bolte),
  Qemu arbitrary monitor commands. (Chris Lalancette),
  Qemu Monitor API entry point. (Chris Lalancette)
- Documentation:
  docs: Link wiki FAQ to main page (Cole Robinson),
  Document the memory balloon device (Daniel P. Berrange),
  man pages: update authors and copyright notice for libvirtd and virsh (Justin Clift),
  Add openauth example to demonstrate a custom auth callback (Matthias Bolte),
  docs: fix so generated .html files are removed with make clean (Justin Clift),
  virsh: Fix man page syntax (Jiri Denemark),
  html docs: added firewall explanation page by daniel berrange (Justin Clift),
  libvirtd: add man page for libvirtd (Justin Clift)
- Portability:
  Fix compile on i686. (Chris Lalancette),
  daemon: dispatch.c should include stdio.h (and stdarg.h) (Ryota Ozaki)
- Bug fixes:
  qemu: Fix PCI address allocation (Jiri Denemark),
  Don't leak delay string when freeing virInterfaceBridgeDefs (Laine Stump),
  qemu: don't lose error on setting monitor capabilities (Eric Blake),
  Add iptables rule to fixup DHCP response checksum. (Laine Stump),
  Fix the ACS checking in the PCI code. (Chris Lalancette),
  Free up memballoon def. (Chris Lalancette),
  Fix a bogus warning when parsing <hostdev> (Chris Lalancette),
  Update ID after stopping a domain (Matthias Bolte),
  openvzDomainCreateWithFlags: set domain id to the correct value (Jean-Baptiste Rouault),
  xenapi: Update ID after starting a domain (Matthias Bolte),
  esx: Update ID after starting a domain (Matthias Bolte),
  Fix DMI uuid parsing. (Chris Lalancette),
  Do not activate boot=on on devices when not using KVM (Daniel Veillard),
  Fix a memory leak in the qemudBuildCommandLine. (Chris Lalancette),
  esx: Fix freeing of heterogeneous lists (Matthias Bolte),
  xen: fix logic bug (Eric Blake),
  Eliminate memory leak in xenUnifiedDomainInfoListFree (Laine Stump),
  lxc: Fix 'autostart' doesn't take effect actually (Ryota Ozaki),
  Fix --with-xen-proxy related compile error (Matthias Bolte),
  Fix a potential race in pciInitDevice. (Chris Lalancette),
  Invert logic for checking for QEMU disk cache options (Daniel P. Berrange),
  libvirt-guests: Don't throw errors if libvirtd is not installed (Jiri Denemark),
  pciResetDevice: use inactive devices to determine safe reset (Chris Wright),
  secaatest: Fix compilation (Matthias Bolte),
  virt-aa-helper-test: Fix failure due to the new disk format probing option (Matthias Bolte),
  virt-aa-helper: Make getopt accept the p option (Matthias Bolte),
  virt-aa-helper: Fix return value of add_file_path (Matthias Bolte),
  Fix SEGV on exit after domainEventDeregister() (Philipp Hahn),
  pciSharesBusWithActive fails to find multiple devices on bus (Chris Wright),
  Fix incorrect use of private data in remote driver (Daniel P. Berrange),
  Set a stable & high MAC addr for guest TAP devices on host (Daniel P. Berrange),
  Fix PCI address assignment if no IDE controller is present (Daniel P. Berrange),
  lxc: force kill of init process by sending SIGKILL if needed (Ryota Ozaki),
  Fix a NULL dereference in the case that the arg in question didn't exist. (Chris Lalancette),
  Remove bogus free of static strings (Daniel P. Berrange),
  Fix a deadlock in bi-directional p2p concurrent migration. (Chris Lalancette),
  Make virsh setmaxmem balloon only when successful. (Chris Lalancette),
  fsync new storage volumes even if new volume was copied. (Laine Stump),
  Don't skip zero'ing end of volume file when inputvol is shorter than newvol (Laine Stump),
  Always clear out the last_error in virshReportError. (Chris Lalancette),
  CVE-2010-2242 Apply a source port mapping to virtual network masquerading (Daniel P. Berrange),
  uml_driver: correct logic error in umlMonitorCommand (Jim Meyering),
  qemuConnectMonitor: fix a bug that would have masked SELinux failure (Jim Meyering),
  python: Fix IOErrorReasonCallback bindings (Cole Robinson),
  cpuCompare: Fix crash on unexpected CPU XML (Jiri Denemark),
  cpu: Fail when CPU type cannot be detected from XML (Jiri Denemark),
  cpuCompare: Fix comparison of two host CPUs (Jiri Denemark),
  Fix potential crash in QEMU monitor JSON impl (Daniel P. Berrange)
- Improvements:
  OpenVZ: implement suspend/resume driver APIs (Jean-Baptiste Rouault),
  esx: Set storage pool target path to host.mountInfo.path (Matthias Bolte),
  esx: Make storage pool lookup by name and UUID more robust (Matthias Bolte),
  esx: Restrict vpx:// to handle a single host in a vCenter (Matthias Bolte),
  esx: Map some managed object types (Matthias Bolte),
  esx: Parse the path of the URI (Matthias Bolte),
  Make virsh -d check its input (Daniel Veillard),
  esx: Switch from name to number checks in the subdrivers (Matthias Bolte),
  esx: Improve blocked task detection and fix race condition (Matthias Bolte),
  build: distribute libvirt_qemu.syms (Eric Blake),
  build: restore operation of bit-rotted 'make cov' (Eric Blake),
  qemu: virtio console support (Cole Robinson),
  domain conf: Track <console> target type (Cole Robinson),
  domain conf: char: Add an explicit targetType field (Cole Robinson),
  domain conf: Rename character prop targetType -> deviceType (Cole Robinson),
  docs: domain: Document virtio <channel> (Cole Robinson),
  tests: Test qemuxml2xml when expected xml changes (Cole Robinson),
  fix handling of PORT_PROFILE_RESPONSE_INPROGRESS netlink message (Gerhard Stenzel),
  maint: turn on gcc logical-op checking (Eric Blake),
  libvirt-guests: add reload, condrestart (Eric Blake),
  libvirt-guests: enhance status (Eric Blake),
  libvirt-guests: detect invalid arguments (Eric Blake),
  qemu: Allow setting boot menu on/off (Cole Robinson),
  qemu: Error on unsupported graphics config (Cole Robinson),
  Force FLR on for buggy SR-IOV devices. (Chris Lalancette),
  qemudDomainAttachHostPciDevice refactor to use new helpers (Chris Wright),
  Add helpers qemuPrepareHostdevPCIDevice and qemuDomainReAttachHostdevDevices (Chris Wright),
  qemuGetPciHostDeviceList take hostdev list directly (Chris Wright),
  esx: Add vpx:// scheme to allow direct connection to a vCenter (Matthias Bolte),
  esx: Don't ignore the vcenter query parameter (Matthias Bolte),
  esx: Add autodetection for the SCSI controller model (Matthias Bolte),
  esx: Allow 'vmpvscsi' as SCSI controller model (Matthias Bolte),
  Add tests for the new Qemu namespace XML. (Chris Lalancette),
  Qemu remote protocol. (Chris Lalancette),
  Handle arbitrary qemu command-lines in qemuParseCommandLine. (Chris Lalancette),
  Qemu arbitrary command-line arguments. (Chris Lalancette),
  Add namespace callback hooks to domain_conf. (Chris Lalancette),
  Remove erroneous setting of return value to errno. (Laine Stump),
  Change virDirCreate to return -errno on failure. (Laine Stump),
  Make virStorageBackendCopyToFD return -errno. (Laine Stump),
  Change virFileOperation to return -errno (ie < 0) on error. (Laine Stump),
  Re-arrange PCI device address assignment to match QEMU's default (Daniel P. Berrange),
  Explicitly represent balloon device in XML and handle PCI address (Daniel P. Berrange),
  Rearrange VGA/IDE controller address reservation (Daniel P. Berrange),
  Use unsigned long in cmdSetmem. (Chris Lalancette),
  Fix up inconsistent virsh option error reporting. (Chris Lalancette),
  Use the extract backing store format in storage volume lookup (Daniel P. Berrange),
  Rewrite qemu-img backing store format handling (Daniel P. Berrange),
  Add ability to set a default driver name/type when parsing disks (Daniel P. Berrange),
  Disable all disk probing in QEMU driver & add config option to re-enable (Daniel P. Berrange),
  Pass security driver object into all security driver callbacks (Daniel P. Berrange),
  Convert all disk backing store loops to shared helper API (Daniel P. Berrange),
  Add an API for iterating over disk paths (Daniel P. Berrange),
  Require format to be passed into virStorageFileGetMetadata (Daniel P. Berrange),
  Refactor virStorageFileGetMetadataFromFD to separate functionality (Daniel P. Berrange),
  Remove 'type' field from FileTypeInfo struct (Daniel P. Berrange),
  Extract the backing store format as well as name, if available (Daniel P. Berrange),
  RFC: Canonicalize block device paths (David Allan),
  .gitignore: Ignore generated libvirtd docs (Cole Robinson),
  esx: Make esxVI_*_Deserialize dynamically dispatched (Matthias Bolte),
  qemu: Use -nodefconfig when probing for CPU models (Jiri Denemark),
  Ensure we return the callback ID in python events binding (Daniel P. Berrange),
  virsh: add new --details option to vol-list (Justin Clift),
  Implement virsh managedsave-remove command. (Chris Lalancette),
  cpu: Add new models from qemu's target-x86_64.conf (Jiri Denemark),
  cpu: Add support for CPU vendor (Jiri Denemark),
  cpuBaseline: Detect empty set of common features (Jiri Denemark),
  cpuBaseline: Don't mess with the CPU returned by arch driver (Jiri Denemark),
  Make html docs in non-srcdir build (Jiri Denemark)
- Cleanups:
  Fix build error in virsh.c (Laine Stump)
  Fix virsh error message when -d arg is not numeric (Eric Blake)
  Fix a couple of typo in iSCSI backend (Aurelien ROUGEMONT)
  Don't put a semicolon on the end of a VIR_ENUM_IMPL. (Chris Lalancette)
  Remove duplicate <p> from downloads.html.in (Matthias Bolte)
  storage: kill dead stores (Eric Blake)
  qemu: kill some dead stores (Eric Blake)
  network: kill dead store (Eric Blake)
  esx: silence spurious compiler warning (Eric Blake)
  build: fix 'make syntax-check' failure (Eric Blake)
  lxc: Fix return values of veth.c functions (Ryota Ozaki)
  maint: fix comment typos (Eric Blake)
  Fix up confusing indentation in qemudDomainAttachHostPciDevice. (Chris Lalancette)
  build: fix VPATH builds (Eric Blake)
  virt-aa-helper: Ignore open errors again (Matthias Bolte)
  qemu-api: avoid build failure (Eric Blake)
  Fix .mailmap after accidental wrong committer address (Daniel P. Berrange)
  Remove inappropriate use of VIR_ERR_NO_SUPPORT (Daniel P. Berrange)
  Remove unused and bitrotting vshCommandOptStringList (Chris Lalancette)
  Remove error checking after using vshMalloc. (Chris Lalancette)
  Remove the "showerror" parameter from vshConnectionUsability. (Chris Lalancette)
  Eliminate compiler warning due to gettext string with no format args (Laine Stump)
  Fix build by removing unknown pod2man flag (Daniel P. Berrange)

### 0.8.2: Jul 5 2010

- Features:
  phyp: adding support for IVM (Eduardo Otubo),
  libvirt: introduce domainCreateWithFlags API (Eric Blake),
  add 802.1Qbh and 802.1Qbg switches handling (Stefan Berger),
  Support for VirtualBox version 3.2 (Jean-Baptiste Rouault),
  Init script for handling guests on shutdown/boot (Jiri Denemark),
  qemu: live migration with non-shared storage for kvm (Kenneth Nagin)
- Documentation:
  html docs: add link to PHP bindings by Radek Hladik (Justin Clift),
  virsh: document attach-disk better (Eric Blake),
  bridge_driver.c: fix file description (Alan Pevec),
  nwfilter: extensions of docs with (Stefan Berger),
  Fix description of virStorageVolGetInfo() (Philipp Hahn),
  virsh: improve help text for vol query commands (Justin Clift),
  virsh: fixed trivial comment and debug message in vshCommandOptVolBy function (Justin Clift),
  virsh: remove xen reference in header comment (Justin Clift),
  virsh: add the volume commands to the virsh man page (Justin Clift),
  virsh: fix minor virsh man page typos and formatting problems (Justin Clift),
  Trivial virsh.pod additions --all for "list" command and similar (Justin Clift),
  Add docs on drive <serial> element (Марк Коренберг),
  daemon: sysconf: Update comment about VNC audio (Cole Robinson),
  nwfilter: documentation (Stefan Berger),
  docs: distribute more coding convention documentation (Eric Blake),
  note a typo: VIR_MIGRATE_TUNNELLED should be VIR_MIGRATE_TUNNELED, (Jim Meyering),
  datatypes: fix comment typo (Eric Blake),
  Fix a typo in docs (Ersek Laszlo),
  docs: hacking: explain why using curly braces well is important (Jim Meyering)
- Portability:
  cgroup: Fix compilation broken on MinGW due to dirent->d_type (Ryota Ozaki),
  parthelper: fix compilation without optimization (Eric Blake),
  build: fix some mingw issues (Eric Blake),
  build: avoid pthreads-win32 on mingw (Eric Blake),
  build: fix cygwin build, correctly this time (Eric Blake),
  build: fix up some compiler flags (Eric Blake),
  build: avoid compile failure on linux kernels older than 2.6.19 (Jim Meyering),
  libvirt_proxy: link with -lpthread if needed (Eric Blake),
  build: allow older gettext (Eric Blake),
  mingw32-libvirt.spec: bring up to date (Eric Blake),
  avoid link error in tests using libvirt_util; due to pthread_sigmask (Jim Meyering),
  configure.ac: Avoid uname, which breaks cross-compilation (Matthias Bolte),
  mingw: Fix two undefined symbols (Matthias Bolte),
  build: avoid compiler warning (Eric Blake),
  build: prefer WIN32 over __MINGW32__ checks (Eric Blake),
  dnsmasqReload: avoid mingw link failure (Eric Blake),
  mingw: Fix symbol export (Matthias Bolte)
- Bug Fixes:
  Avoid invoking the qemu monitor destroy callback if the constructor fails (Daniel P. Berrange),
  cgroup: Add missing errno == ENOENT check in virCgroupRemoveRecursively (Ryota Ozaki),
  Fix crash when detaching devices from qemu domains. (Chris Lalancette),
  virFileResolveLink: guarantee an absolute path (Eric Blake),
  phyp: don't steal storage management from other drivers (Eric Blake),
  Avoid calling virStorageFileIsSharedFS with NULL (Laine Stump),
  lxc: Fix virsh console doesn't work after restarting libvirtd (Ryota Ozaki),
  lxc: Fix error handlings in lxcContainerRenameAndEnableInterfaces (Ryota Ozaki),
  Set proper selinux label on image file during qemu domain restore (Laine Stump),
  build: fix regression with libvirt-api.xml generation (Eric Blake),
  Fix a reference leak for node devices. (Chris Lalancette),
  Don't squash file permissions when migration fails (Daniel P. Berrange),
  Fix migration in text mode and shared storage migration in json mode (Daniel P. Berrange),
  Add missing parameter in python Disk IO error callback (Daniel P. Berrange),
  Check for presence of qemu -nodefconfig option before using it (Laine Stump),
  cgroup: Change virCgroupRemove to remove all descendant groups at first (Ryota Ozaki),
  Fix reference handling leak on qemuMonitor (Daniel P. Berrange),
  Don't leak open fd to virsh in libvirt-guests init script (Jiri Denemark),
  nwfilter: fix loadable module support (Stefan Berger),
  Do not free static buffer with UUID (Jiri Denemark),
  qemu: Fix crash on failed VM startup (Cole Robinson),
  Add several missing vir*Free calls in libvirtd's remote code (Matthias Bolte),
  Fix enumeration of partitions in disks with a trailing digit in path (Daniel P. Berrange),
  vbox: check getenv("DISPLAY") for NULL in vboxDomainDumpXML (Matthias Bolte),
  Check getenv("PATH") for NULL in virFindFileInPath (Matthias Bolte),
  Fix cgroup setup code to cope with root squashing NFS (Daniel P. Berrange),
  Fix leaks in udev device add/remove v3 (David Allan),
  Ensure that PCI device is reattached to host if hotadd fails (Daniel P. Berrange),
  Don't raise errors in the selinux restore code (Daniel P. Berrange),
  Fix check for errors in device_add command in QEMU text monitor (Daniel P. Berrange),
  Network duplicate UUID/name checking (Daniel P. Berrange),
  Storage pool duplicate UUID/name checking (Daniel P. Berrange),
  Fix auto-adding of virtio serial controllers (Daniel P. Berrange),
  Ensure UNIX domain sockets are removed on daemon shutdown (Daniel P. Berrange),
  Fix AppArmor save/restore.Add stdin_path to qemudStartVMDaemon() args. (Jamie Strandboge),
  Adjust block size used by dd to speed QEMU domain save operations. (Laine Stump),
  Fix dereference of potentially freed pointer in qemudDomainSaveFlags (Laine Stump),
  Update nodedev scsi_host data before use (David Allan),
  Fix device destroy return value (David Allan),
  storage: Check for invalid storage mode before opening (Cole Robinson),
  Improve nodedev parent/child relationships (David Allan),
  network: bridge: Don't start network if it collides with host routing (Cole Robinson),
  Fix integer overflow in hotplug methods (Daniel P. Berrange),
  Fix failing virGetHostname. (Chris Lalancette),
  storage: Sanitize pool target paths (Cole Robinson),
  Fix handling of disk backing stores with cgroups (Daniel P. Berrange),
  Fix up basic migration. (Chris Lalancette),
  qemu: Release bus address on PCI host device remove (Alex Williamson),
  qemu: avoid corrupting guest info struct on host device PCI hot add (Alex Williamson),
  Query block allocation extent from QEMU monitor (Daniel P. Berrange),
  Don't overwrite virDomainAssignDef errors. (Chris Lalancette),
  Fix race in finding available vnc port (Jim Fehlig),
  qemu driver: fix version check typos (Chris Wright),
  daemon: A few initscript corrections (Cole Robinson),
  qemu: Properly cleanup in security startup error path (Cole Robinson),
  qemudDomainMigrateFinish2: handle a case of virDomainSaveStatus failure (Jim Meyering),
  Fix potential NULL dereference in remoteDomainMigratePrepare2 (Jiri Denemark),
  qemudDomainRestore: handle a case of virDomainSaveStatus failure (Jim Meyering),
  python: don't ignore virInitialize failure in module initialization (Jim Meyering),
  tests: do not ignore virInitialize failure (Jim Meyering),
  qemuMonitorTextMigrate: avoid leak on OOM-error path (Jim Meyering),
  virNWFilterDefParseXML: avoid leak on error paths (Jim Meyering),
  virDomainNetDefParseXML: avoid leak upon multiple "filterref" (Jim Meyering),
  ebiptablesWriteToTempFile: don't close a negative file descriptor (Jim Meyering),
  Protect against NULL pointer flaws in monitor usage (Daniel P. Berrange),
  Fix multiple potential NULL pointer references in monitor usage (Daniel P. Berrange),
  umlAutostartDomain: avoid NULL-deref upon virGetLastError failure (Jim Meyering),
  x86ModelHasFeature: avoid NULL-dereference for unmatched CPU "feature" (Jim Meyering),
  qemudDomainSetVcpus: avoid NULL-deref (Jim Meyering),
  nwfilter: Add missing driver lock in qemu driver (Stefan Berger),
  Fix a misuse of virAsprintf in qemudDomainMemoryPeek (Ryota Ozaki),
  Don't reset user/group/security label on shared filesystems during migrate (Daniel P. Berrange),
  Fix handling of disk backing stores with cgroups (Daniel P. Berrange),
  Fix possible crash in handling IO Error event (Daniel P. Berrange),
  Fix monitor ref counting when adding event handle (Jiri Denemark),
  Remove watches before calling REMOTE_PROC_CLOSE (Jiri Denemark),
  node_device: udev: Fix PCI product/vendor swappage (Cole Robinson),
  virsh: schedinfo --set invalid=value would simply ignore the option (Jim Meyering),
  Remove unused nwfilter field from struct remote_error (Matthew Booth),
  util: fix va_start usage bug (Eric Blake),
  Don't wipe generated iface target in active domains (Jiri Denemark),
  Various fixes for the spec file (Daniel Veillard),
  lxc: Check domain is active/inactive as required by operation (Jiri Denemark),
  lxc: Make SetMemory work for active domains only (Jiri Denemark),
  cgroup: Fix possible memory leak in virCgroupMakeGroup (Ryota Ozaki),
  Fix memory leaks in cmdInterfaceEdit and cmdNWFilterEdit. (Laine Stump),
  lxc: Fix failure on starting a domain with multiple interfaces (Ryota Ozaki)
- Improvements:
  vbox: Let configure detect/set the XPCOMC directory (Matthias Bolte),
  udev: Parse PCI devices even if libpciaccess fails (Cole Robinson),
  qemu: Improve some qemu.conf error reporting (Cole Robinson),
  util: virExec: Dispatch all errors raised after fork (Cole Robinson),
  virsh: tweak help output for VSH_OT_DATA (Eric Blake),
  Check for active PCI devices when doing nodedevice operations. (Chris Lalancette),
  virsh: add new --details option to pool-list (Justin Clift),
  Selectively ignore domainSetSecurityAllLabel failure in domain restore (Laine Stump),
  use virStorageFileIsSharedFS utility function in qemudDomainSaveFlag (Laine Stump),
  Enhance virStorageFileIsSharedFS (Laine Stump),
  phyp: optimize use of sed (Eric Blake),
  phyp: add storage management driver (Eduardo Otubo),
  phyp: add rudimentary storage driver (Eduardo Otubo),
  maint: add gnulib gettimeofday module (Eric Blake),
  Avoid blocking all APIs during incoming migration (Daniel P. Berrange),
  Set labelling for character devices in security drivers (Daniel P. Berrange),
  Add API for iterating over all character devices (Daniel P. Berrange),
  Adding Storage Management driver (style and indentation) (Eduardo Otubo),
  esx: Add support for the controller element (Matthias Bolte),
  Add optional model attribute to the controller element (Matthias Bolte),
  Add wide SCSI bus disk address generation support (Matthias Bolte),
  cgroup: Enable memory.use_hierarchy of cgroup for domain (Ryota Ozaki),
  network: allow tftp port if tftp is defined (Alan Pevec),
  Add '-nodefconfig' command line arg to QEMU (Daniel P. Berrange),
  Make checks for inactive QEMU guest more robust (Daniel P. Berrange),
  Improve some error messages about unsupported APIs/URIs (Daniel P. Berrange),
  Index hashes by UUID instead of name (Jiri Denemark),
  Allow one-or-more <boot dev="..."/> entries (Philipp Hahn),
  virsh: add --uuid option to vol-pool (Justin Clift),
  nwfilter: add XML attribute to control iptables state match (Stefan Berger),
  virsh: ensure persistence and autostart are shown for dominfo and pool-info (Justin Clift),
  nwfilter: use match target on incoming traffic (Stefan Berger),
  macvtap: work-around for 2.6.32 and older kernels (Stefan Berger),
  virsh: add pool support to vol-key command (Justin Clift),
  esx: Update case insensitive .vmx tests (Matthias Bolte),
  esx: Accept 'disk' as harddisk device type in .vmx files (Matthias Bolte),
  virsh: mark autostart answers for translation (Justin Clift),
  virsh: add start --paused support (Eric Blake),
  qemu: support starting persistent domain paused (Eric Blake),
  drivers: add virDomainCreateWithFlags if virDomainCreate exists (Eric Blake),
  remote: protocol implementation for virDomainCreateWithFlags (Eric Blake),
  uml: sanity check external data before using it (Eric Blake),
  Improve error message for disabled client-side drivers (Matthias Bolte),
  virsh: add snapshot backing store support to vol-create-as (Justin Clift),
  esx: Add proxy query parameter (Matthias Bolte),
  esx: Refactor esxUtil_ParseQuery's parameter handling (Matthias Bolte),
  virsh: add new vol-pool command (Justin Clift),
  virsh: add --paused option to create (Eric Blake),
  qemu: allow creation of a paused domain (Eric Blake),
  virDomainCreateXML: support new flag (Eric Blake),
  Add multiIQN tests (David Allan),
  Add multiiqn XML dump (David Allan),
  Fix test breakage from virtio serial changes (Daniel P. Berrange),
  Enable probing of VPC disk format type (Daniel P. Berrange),
  Prefer UDEV to HAL drivers if both a compiled (Daniel P. Berrange),
  Add support for setting socket MLS level in SELinux driver (Daniel J Walsh),
  Fix error codes for missing storage pools (Daniel P. Berrange),
  Include port number with virtio serial devices (Daniel P. Berrange),
  Disable use of 'reason' field in block IO event in QEMU (Daniel P. Berrange),
  Add stdin_path to qemudStartVMDaemon() args. (Jamie Strandboge),
  Allocate buffer to hold xend response (Jim Fehlig),
  phyp: Strict check when listing domains (Eduardo Otubo),
  hostusb: Properly handle 'usbX' sysfs files (Cole Robinson),
  Add --source-format argument to virsh pool-define-as and pool-create-as (Justin Clift),
  Add --source-format argument to virsh pool-define-as and pool-create-as (Justin Clift),
  build: fix VPATH 'make syntax-check' (Eric Blake),
  qemu: Add a qemu.conf option for clearing capabilities (Cole Robinson),
  macvtap: cannot support target device name (Stefan Berger),
  Fix libvirt-guests init script (Jiri Denemark),
  maint: new syntax-check rule to ensure that AUTHORS stays in sync (Jim Meyering),
  maint: update AUTHORS with recent contributors (Eric Blake),
  xen: Fix chardev listen sexpr formatting (Cole Robinson),
  v2 of Cole's wlan support (David Allan),
  Install, distribute and package domainsnapshot.rng (Matthias Bolte),
  build: support 'make check' in pristine tree (Eric Blake),
  esx: Expose host UUID in the capabilities XML (Matthias Bolte),
  Pass pre-opened PCI device sysfs config file to QEMU (Alex Williamson),
  xen-proxy build broken (Matthias Bolte),
  esx: Add read-only storage pool access (Matthias Bolte),
  libvirtd: diagnose invalid host UUID (Jim Meyering),
  vepa: parsing for 802.1Qb{g|h} XML (Stefan Berger),
  vepa+vsi: Introduce dependency on libnl (Stefan Berger),
  Expose a host UUID in the capabilities XML (Daniel P. Berrange),
  qemu: Allow using regular audio backends with VNC (Cole Robinson),
  lxcSetSchedulerParameters: reverse order of tests; diagnose a failure (Jim Meyering),
  libvirtd: start each diagnostic with "argv0: " (Jim Meyering),
  libvirtd: mark strings for translation, including --help output (Jim Meyering),
  build: force init scripts to rebuild on changed --prefix (Eric Blake),
  build: Distribute the whole tests/qemuhelpdata directory (Matthias Bolte),
  Add defines for QEMU_VNC_PORT_{MIN,MAX} and use them (Jim Fehlig),
  Add simple bitmap operations to utils (Jim Fehlig),
  daemon: Export SDL audio environment variables (Cole Robinson),
  Autostart domains using virDomainObjStart (Jiri Denemark),
  maint: update po/POTFILES.in (Jim Meyering),
  maint: enforce policy wrt VIR_DEBUG and VIR_DEBUG0 (Jim Meyering),
  maint: enforce policy wrt VIR_ERROR and VIR_ERROR0 (Jim Meyering),
  maint: change empty string in err message to localized 'unknown error' (Jim Meyering),
  qemu: Use ShutdownVMDaemon for all startup cleanup paths (Cole Robinson),
  Domain snapshot RNG and tests. (Chris Lalancette),
  Fix up the python bindings for snapshotting. (Chris Lalancette),
  qemu_conf.c: also recognize new first line of qemu -help output (Jim Meyering),
  lxc_controller.c: don't ignore failed "accept" (Jim Meyering),
  qemu: Don't deny ShutdownVMDaemon for non-running VMs (Cole Robinson),
  libvirtd: don't ignore virInitialize failure (Jim Meyering),
  maint: prohibit newline at end of diagnostic (Jim Meyering),
  maint: remove unwanted newline at end of diagnostic (Jim Meyering),
  build: distribute missing file (Eric Blake),
  esx: Make esxVI_*_CastFromAnyType dynamically dispatched (Matthias Bolte),
  esx: Allow esxVI_X_DynamicCast to be called successfully on X objects (Matthias Bolte),
  tests: the remote_protocol check also accommodates older pdwtags (Jim Meyering),
  maint: enforce no-markup policy wrt VIR_WARN-like macros (Jim Meyering),
  Add support for SSE4.1 and SSE4.2 CPU features (Jiri Denemark),
  maint: add more free-like functions to the list and deal with fallout (Jim Meyering),
  maint: add virCgroupFree to the list of free-like functions (Jim Meyering),
  qemudDomainSetVcpus: avoid NULL-deref on failed uuid look-up (Jim Meyering),
  Add CIFS to the list of network file systems (Matthias Bolte),
  Add VIR_STORAGE_POOL_INACCESSIBLE to denote inaccessible storage pools (Matthias Bolte),
  qemu_conf: fix flag value (Eric Blake),
  qemu: Clarify a couple error messages (Cole Robinson),
  virFileResolveLink: fix return value (Eric Blake),
  tests: Skip daemon-conf test if dir exceeds UNIX_PATH_MAX (Cole Robinson),
  pci: Give an explicit error if device not found (Cole Robinson),
  qemu: Report cmdline output if VM dies early (Cole Robinson),
  qemu_driver: avoid NULL dereference (Jim Meyering),
  Make domain save work when dynamic_ownership=0 (Daniel P. Berrange),
  Add support for NIC hotplug using netdev_add in QEMU (Daniel P. Berrange),
  build: update gnulib (Eric Blake),
  tests: correct PATH in new test, for when running manually (Jim Meyering),
  Add env variable for debugging gnutls usage (Daniel P. Berrange),
  maint: allow VPATH use of remote_protocol-structs (Eric Blake),
  help avoid accidental remote_protocol.x changes (Jim Meyering),
  build: use LIBADD, not LDFLAGS, for adding libraries (Eric Blake),
  Implement SCSI disk unplugging (Wolfgang Mauerer),
  qemu: use better types (Eric Blake),
  Refactor disk unplugging (Wolfgang Mauerer),
  build: simplify checks for sched.h (Eric Blake),
  build: use gnulib's sys/wait.h (Eric Blake),
  build: use gnulib's uname (Eric Blake),
  build: rely on gnulib's pthread module (Eric Blake),
  rpmbuild: add ebtables & ip(6)tables dependency for rpm (Stefan Berger),
  lxc: Use virDomainFindByUUID for domain lookup (Jiri Denemark),
  nwfilter: skip some interfaces on filter update (Stefan Berger),
  pass info where request stems from to have rules applied (Stefan Berger),
  dnsmasq.c: Fix OOM error reporting (Matthias Bolte),
  autobuild.sh: provide default prefix (Eric Blake)
- Cleanups:
  lxc: Change VIR_ERROR to VIR_DEBUG for just a debugging message (Ryota Ozaki),
  phyp: reduce scope of driver functions (Eric Blake),
  Fix test case failure due to missing -nodefconfig (Daniel P. Berrange),
  esx: Use bool instead of int where appropriated (Matthias Bolte),
  Cleanup some LIBADD and CFLAGS (Matthias Bolte),
  virsh: remove a doubled up include for errno.h (Justin Clift),
  Misc cleanups (Jiri Denemark),
  Remove unnecessary check for non-NULL uuid (Jiri Denemark),
  qemu: reduce file padding requirements (Eric Blake),
  virsh: change printf() calls to vshPrint() (Justin Clift),
  phyp: sed cleanups (Eric Blake),
  maint: simplify some ignore files (Eric Blake),
  avoid syntax-check failure (Jim Meyering),
  autobuild.sh: avoid bashism (Eric Blake),
  bitmap: reject zero-size bitmap (Eric Blake),
  build: depend on correct file (Eric Blake),
  build: make cpp indentation conform (Jim Meyering),
  hooks: fix typo (Paolo Smiraglia),
  build: silence cppi warning, clarify vbox headers (Eric Blake),
  xen: Remove unused function (Cole Robinson),
  esx: Simplify goto usage (Matthias Bolte),
  Use printf instead of echo -e in libvirt.spec.in (Matthias Bolte),
  build: fix HTML errors in nwfilter docs (Eric Blake),
  build: fix compilation without macvtap (Eric Blake),
  tests: avoid new failure of the daemon-conf test (Jim Meyering),
  storage: mpath: Fix incorrect VIR_ERROR use (Cole Robinson),
  Allow nwfilter functions to be compiled with C++ (Chris Lalancette),
  storage: Combine some duplicate code (Cole Robinson),
  storage: mpath: Clean up some error handling (Cole Robinson),
  Remove dead code after refactoring qemudDomainStart (Jiri Denemark),
  build: fix cppi warnings (Eric Blake),
  Remove isValidIfname. (Chris Lalancette),
  Refactor qemudDomainStart (Jiri Denemark),
  Factor out def assignment to existing domain from virDomainAssignDef (Jiri Denemark),
  Refactor qemudDomainRestore (Jiri Denemark),
  maint: don't mark VIR_DEBUG or VIR_DEBUG0 diagnostics for translation (Jim Meyering),
  maint: more of same, but manual: convert VIR_ERROR("%s" to VIR_ERROR0( (Jim Meyering),
  maint: VIR_ERROR/VIR_ERROR0: mark up the remaining ones manually (Jim Meyering),
  maint: mark translatable string args of VIR_ERROR (Jim Meyering),
  maint: mark translatable string args of VIR_ERROR0 (Jim Meyering),
  maint: use VIR_ERROR0 rather than VIR_ERROR with a bare "%s" (Jim Meyering),
  qemu: Remove explicit VNC XML cleanup (Cole Robinson),
  Rename qemuBuildCommandLine tapfds -> vmfds. (Alex Williamson),
  initialize "meta" in virStorageFileGetMetadata, not in each caller (Jim Meyering),
  (qemu*DiskCgroup): avoid dead code (Jim Meyering),
  maint: more VIR_WARN corrections: now manually (Jim Meyering),
  maint: use VIR_WARN0("...") rather than VIR_WARN("%s", "...") (Jim Meyering),
  maint: remove _(...) from VIR_WARN arg manually (Jim Meyering),
  maint: don't mark VIR_WARN or VIR_WARN0 diagnostics for translation (Jim Meyering),
  do not ignore qemuMonitorAddDrive failure; make uses identical (Jim Meyering),
  ebtablesAddRemoveRule, iptablesAddRemoveRule: don't skip va_end (Jim Meyering),
  linuxNodeInfoCPUPopulate: avoid used-uninitialized via a test (Jim Meyering),
  lxcFreezeContainer: avoid test-after-deref of never-NULL pointer (Jim Meyering),
  Remove debugging fprintf() calls (Daniel P. Berrange),
  tests: use GPLv2+, not GPLv3 (Jim Meyering),
  tests: adjust copyrights on scripts: s/FSF/Red Hat/ (Jim Meyering),
  virsh: fix a typo in a diagnostic (Jim Meyering),
  delMacvtap: typo fix (Eric Blake),
  docs/Makefile.am: remove unnecessary subshells (Eric Blake),
  maint: avoid spurious output if program not present (Eric Blake),
  storage_encryption: silence clang warning (Eric Blake),
  maint: whitespace cleanups (Eric Blake),
  qemu: Fix warning about a non-literal format string (Matthias Bolte),
  build: drop more redundant configure checks (Eric Blake),
  build: silence a clang false positive (Eric Blake)

### 0.8.1: Apr 30 2010

- Features:
  Add virDomainGetBlockInfo API to query disk sizing (Daniel P. Berrange),
  Starts dnsmasq from libvirtd with --dhcp-hostsfile option (Satoru SATOH)
- Documentation:
  cleanup the download section of the documentation (Daniel Veillard),
  Fix messsage as message. (Chris Lalancette),
  Fix up a debug typo. (Chris Lalancette),
  add nwfilter functions to virsh man page (Stefan Berger)
- Portability:
  Fix build on Ubuntu. (Chris Lalancette),
  cygwin/mingw: Fix version script handling (Matthias Bolte),
  build: fix autogen rule for VPATH build (Eric Blake),
  Fix build with DEBUG_RAW_IO=1 (Jiri Denemark),
  Don't try to build qemu and lxc on non-Linux platforms (Daniel Veillard),
  cygwin: Handle differences in the XDR implementation (Matthias Bolte),
  Cygwin's GCC doesn't like this .sa_handler initialization for some reason (Matthias Bolte),
  linux/if.h header is not available on non-Linux platforms (Matthias Bolte),
  cygwin: Check explicitly for getmntent_r (Matthias Bolte),
  Disable stateful OpenNebula driver if libvirtd is disabled (Matthias Bolte),
  build: don't include winsock2.h on cygwin (Eric Blake),
  portability fixes to tools/virt-pki-validate.in (Dustin Kirkland),
  virt-aa-helper-test: avoid non-portable echo -n (Eric Blake),
  schematestutils.sh: improve shell portability: avoid "echo -e" (Jim Meyering),
  Fix build of openvz on RHEL-5. (Chris Lalancette),
  Fix spec file for builds without lxc (Daniel Berteaud)
- Bug Fixes:
  domain: Fix PCI address decimal parsing regression (Cole Robinson),
  Fix virt-pki-validate's determination of CN (Dustin Kirkland),
  Fix detection of disk in IO events (Daniel P. Berrange),
  Fix a virsh edit memory leak (Chris Lalancette),
  Fix a qemuDomainPCIAddressSetFree memory leak (Chris Lalancette),
  Fix a memory leak in the node_device_udev code (Chris Lalancette),
  qemuDomainSnapshotCreateXML: avoid NULL dereferences (Jim Meyering),
  qemudDomainCreate: correct a slightly misdirected goto (Jim Meyering),
  Fix handling of security driver restore failures in QEMU domain save (Daniel P. Berrange),
  Fix QEMU domain save to block devices with cgroups enabled (Daniel P. Berrange),
  Fix QEMU save/restore with block devices (Daniel P. Berrange),
  Fix crash when cleaning up from failed save attempt (Daniel P. Berrange),
  The base used for conversion of USB values should be 16 not 10. (Klaus Ethgen),
  Fix up the locking in the snapshot code. (Chris Lalancette),
  Ignore qemu STOP event when stopping CPUs (Jiri Denemark),
  Fix memory leak in virsh snapshot-list. (Chris Lalancette),
  Fix virDomainSnapshotObjFree memory leak. (Chris Lalancette),
  Fix a memory leak in the snapshot code in libvirtd. (Chris Lalancette),
  QEmu JSON drop timestamp from command object (Luiz Capitulino),
  Fix crash in nwfilter driver check (Daniel P. Berrange),
  qemu: fix security context references in DAC code (Spencer Shimko),
  Properly indent encryption tags (David Allan),
  Fix locking in qemudDomainCoreDump (Jiri Denemark),
  Poll for migration end every 50ms instead of 50us (Jiri Denemark),
  configure.ac SELinux fixes (Spencer Shimko),
  Fix QEMU text monitor command error checking (Daniel P. Berrange),
  Fix CPU hotplug command names (Daniel P. Berrange),
  Fix printing of event detail in python events demo program (Daniel P. Berrange),
  Fix initial VCPU pinning in qemu driver (Jiri Denemark),
  Make avahi startup more robust. (Chris Lalancette),
  esx: Don't treat an empty root snapshot list as error (Chris Wong),
  esx: Fix FindByIp response handling (Matthias Bolte),
  esx: Fix virtualHW.version generation (Matthias Bolte),
  Fix device_del in JSON mode for QEMU (Daniel P. Berrange),
  nwfilter: Free nwfilter hash of virConnectPtr (Matthias Bolte),
  remote: react to failures on wakeupFD (Eric Blake),
  Fix CDROM media change for QEMU when using -device syntax (Daniel P. Berrange),
  Fix QEMU memory stats JSON mode (Daniel P. Berrange),
  Trivial fix: Add braces to for statement to avoid crashes (Stefan Berger),
  qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang (Jim Meyering),
  qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang (Jim Meyering),
  virGetHostnameLocalhost: avoid FP NULL-ptr-deref from clang (Jim Meyering),
  nwfilter_ebiptables_driver.c: avoid NULL dereference (Jim Meyering),
  esxVMX_GatherSCSIControllers: avoid NULL dereference (Jim Meyering),
  Fix nodeinfotest on NUMA machines (Daniel P. Berrange)
- Improvements:
  Add support for another explicit IO error event (Daniel P. Berrange),
  Report all errors in SELinuxRestoreSecurityFileLabel (Jiri Denemark),
  Prevent updates while IP address learn thread is running (Stefan Berger),
  Syncronize the teardown of rules with the thread (Stefan Berger),
  Clean all tables before applying 'basic' rules (Stefan Berger),
  MAke virFileHasSuffix case insensitive (Paul Dorman),
  nwfilter: Also pick IP address from a DHCP ACK message (Stefan Berger),
  Implement python binding for virDomainGetBlockInfo (Daniel P. Berrange),
  Add new domblkinfo command to virsh (Daniel P. Berrange),
  Implement virDomainGetBlockInfo in QEMU driver (Daniel P. Berrange),
  Remote protocol impl for virDomainGetBlockInfo (Daniel P. Berrange),
  Internal driver API infrastructure for virDomainGetBlockInfo (Daniel P. Berrange),
  Report better error if qemuSnapshotIsAllowed failed. (Chris Lalancette),
  nwfilter: python bindings for nwfilter (Stefan Berger),
  Move dnsmasq host file to a separate directory (Daniel Veillard),
  nwfilter: allow to mix filterrefs and rules in the schema (Stefan Berger),
  Avoid create/unlink with block devs used for QEMU save (Daniel P. Berrange),
  nwfilter: let qemu's after-migration packet pass (Stefan Berger),
  Fix up the error message if we can't parse the snapshot XML. (Chris Lalancette),
  nwfilter: add support for RAPR protocol (Stefan Berger),
  nwfilter: enable hex number inputs in filter XML (Stefan Berger),
  Add build support for dnsmasq module (Satoru SATOH),
  Add dnsmasq module files (Satoru SATOH),
  Fix make dist missing ESX generated files (Daniel Veillard),
  Fix printing of pathnames on error in qemuDomainSnapshotLoad. (Chris Lalancette),
  Improve configure error message about missing Linux headers (Matthias Bolte),
  nwfilter: extend schema + add testcase w/ connlimit-above (Stefan Berger),
  addrToString: give better error message (Eric Blake),
  Fake host CPU for qemu tests (Jiri Denemark),
  Use configured CPU model if possible (Jiri Denemark),
  Support removing features when converting data to CPU (Jiri Denemark),
  Move MIN macro to util.h so that others can use it (Jiri Denemark),
  Deal with CPU models in [] (Jiri Denemark),
  Ignore empty type attribute in driver element of virtual disks (Guido Günther),
  esx: Gather some XML generation macros in esx_vi.h (Matthias Bolte),
  nwfilter: add support for connlimit match (Stefan Berger),
  Extend fwall-drv interface and call functions via interface (Stefan Berger),
  esx: Add support for the VMXNET 2 (Enhanced) NIC model (Matthias Bolte),
  Install nwfilter xml files from source directory. (Philipp Hahn),
  Fixup python binding for virDomainSnapshot APIs (Daniel P. Berrange),
  Fix network hotplug to use device_add in QEMU (Daniel P. Berrange),
  Fix error reporting for getfd + host_net_add in QEMU (Daniel P. Berrange),
  Replace printf with logging macros (Matthias Bolte),
  Mark internal.h for translation (Jiri Denemark),
  Use virCheckFlags for APIs added in 0.8.0 (Jiri Denemark),
  Introduce virCheckFlags for consistent flags checking (Jiri Denemark),
  nwfilter: Clear all state tracking from a drop rule (Stefan Berger),
  Update to latest gnulib to get strtok_r relaxed to LGPLv2+ (Matthias Bolte),
  esx: Add nwfilter driver stub (Matthias Bolte),
  util: ensure safe{read,write,zero} return is checked (Eric Blake),
  Update QEMU device_add command in JSON mode (Daniel P. Berrange),
  Rename parameter in qemuMonitorDeviceDel (Daniel P. Berrange),
  Run test suite as part of RPM build process (Daniel P. Berrange),
  Fix QEMU command building errors to reflect unsupported configuration (Daniel P. Berrange),
  nwfilter: fix tear down order and consolidate functions (Stefan Berger),
  Fix close_used_without_including_unistd_h error (Matthias Bolte),
  Implement variable length structure allocator (David Allan),
  build: set STATIC_ANALYSIS when running via clang or coverity (Jim Meyering),
  sa_assert: assert-like macro, enabled only for use with static analyzers (Jim Meyering),
  Implement forgotten backend of virInterfaceIsActive() (Laine Stump),
  nwfilter: use virFindFileInPath for needed CLI tools (Stefan Berger),
  esx: Extend esx_vi_generator.py to cover methods too (Matthias Bolte),
  Consolidate interface related functions in interface.c (Stefan Berger),
  build: include usleep gnulib module (Eric Blake)
- Cleanups:
  qemudDomainSaveFlag: remove dead store (Jim Meyering),
  Remove unused goto label from qemudDomainCreate (Daniel P. Berrange),
  Fix indentation for storage conf XML (David Allan),
  Make virDomainSnapshotObjListDeinit static. (Chris Lalancette),
  Some NWFilter symbols are conditional and have to be exported conditional (Matthias Bolte),
  xen: Fix inside_daemon beeing unused when libvirtd is disabled (Matthias Bolte),
  maint: update AUTHORS (Marco Bozzolan),
  maint: update AUTHORS with recent contributors (Eric Blake),
  maint: enforce whitespace on shell scripts (Eric Blake),
  testutilsqemu: avoid uninitialized variable (Eric Blake),
  maint: ignore 'make syntax-check' failure files (Eric Blake),
  build: fix preprocessor indentation (Eric Blake),
  build: avoid compiler warning (Eric Blake),
  Explicitly set virStoragePoolTypeInfo FS and NETFS defaults (Matthias Bolte),
  Mark in_open parameter of remoteAuthenticate as unused when it's unused (Matthias Bolte),
  Don't ship generated python/libvirt.? files. (Philipp Hahn),
  esx: Replace scanf with STRSKIP and strtok_r (Matthias Bolte),
  maint: another preprocessor fix (Eric Blake),
  Remove code from JSON monitor for commands that won't be ported (Daniel P. Berrange),
  Fix apibuild.py warnings about missing ':' (Matthias Bolte),
  xend_internal.c: assure clang that we do not dereference NULL (Jim Meyering),
  build: fix recent 'make syntax-check' failure (Eric Blake),
  virStorageBackendFileSystemMount: prefer strdup over virAsprintf (Jim Meyering),
  virStorageBackendFileSystemMount: placate clang (Jim Meyering),
  openvzGetProcessInfo: address clang-detected low-probability flaw (Jim Meyering),
  vshCommandRun: avoid used-uninitialized timing-related report from clang (Jim Meyering),
  Fix up formatting of remote protocol stuff. (Chris Lalancette),
  Remove some debugging leftovers. (Chris Lalancette),
  build: fix syntax-check problems (Eric Blake)

### 0.8.0: Apr 12 2010

- Features:
  esx: Add domain snapshot support (Matthias Bolte),
  Snapshot API framework. (Chris Lalancette),
  Add managed save API entry points (Daniel Veillard),
  Implement XML parser/formatter for "timer" subelement of domain clock (Laine Stump),
  Add hook utilities (Daniel Veillard),
  cpuUpdate() for updating guest CPU according to host CPU (Jiri Denemark),
  Network filtering API (Stefan Berger),
  Introduce a new virDomainUpdateDeviceFlags public API (Daniel P. Berrange),
  Introduce a new public API for domain events (Daniel P. Berrange),
  Public virDomainMigrateSetMaxDowntime API (Jiri Denemark),
  Add public API for volume wiping (David Allan),
  xenapi: Initial commit of the new driver (Sharadha Prabhakar)
- Documentation:
  Add documentation for synchronous hooks (Daniel Veillard),
  Small fixes to virsh man page (Luiz Capitulino),
  Avoid using multicast addresses for Ethernet MAC examples (redshift),
  Fix unterminated B<...> in virsh man page (Jiri Denemark),
  Document all options of virsh dumpxml (Jiri Denemark),
  virsh: improve documentation (Eric Blake),
  Document snapshot virsh commands in the man page. (Chris Lalancette),
  Website documentation for the snapshot XML. (Chris Lalancette),
  website: Add archive link for libvirt-users list (Matthias Bolte),
  virsh: improve man page (Eric Blake),
  Mention direct device support since 0.7.7 in docs (Stefan Berger),
  esx: Improve documentation about remote URIs (Matthias Bolte),
  doc: fix typos in hacking.html.in; mark HACKING as read-only (Jim Meyering),
  doc: fix more typos in HACKING (Jim Meyering),
  hacking: add a section on preprocessor conventions (Eric Blake),
  hacking: fix typos (Eric Blake),
  Update hacking.html.in (David Allan)
- Portability:
  Fix Win32 portability problems (Daniel P. Berrange),
  This patch fixes some compilation issues for the RHEL5 build (Stefan Berger),
  util: Add stubs for some functions on Windows (Matthias Bolte),
  Add HAVE_PTHREAD_H guard for pthread_sigmask (Matthias Bolte),
  bootstrap: Enable copy-mode for MinGW builds (Matthias Bolte),
  util: Handle lack of (f)chmod and (f)chown on Windows (Matthias Bolte),
  bootstrap: Remove rsync from buildreq list (Matthias Bolte),
  Make sure virtTestCaptureProgramOutput has a body on Windows (Matthias Bolte),
  Fix export of virConnectAuthPtrDefault for MinGW builds (Matthias Bolte),
  Make sure uid_t and gid_t are available (Matthias Bolte)
- Bug Fixes:
  nwfilter: Fix memory leak on daemon init and shutdown (Stefan Berger),
  More event callback fixes (Daniel P. Berrange),
  Fix error in nwfilter test driver (Stefan Berger),
  qemu: catch cdrom change error (Ryan Harper),
  nwfilter: fix for directionality of ICMP traffic (Stefan Berger),
  Fix CPU comparison for x86 arch (Jiri Denemark),
  Don't ignore guest CPU selection when unsupported by HV (Jiri Denemark),
  domain_event.c: don't deref NULL on an OOM error path (Jim Meyering),
  nwfiler: fix due to non-symmetric src mac address match in iptables (Stefan Berger),
  qemu_driver.c: don't close an arbitrary file descriptor (Jim Meyering),
  Add VIR_DOMAIN_XML_INACTIVE flag when parsing domain XML (Jamie Strandboge),
  virt-aa-helper should not fail if profile was removed (Jamie Strandboge),
  Do nor clear caps when invoking virt-aa-helper (Jamie Strandboge),
  virterror.c: avoid erroneous case "fall-through" (Jim Meyering),
  Increase the number of available VNC ports. (Chris Lalancette),
  Only assign newDef when we have a new def. (Chris Lalancette),
  nwfilter: Fix random index in virNWFilterRuleDefDetailsFormat (Matthias Bolte),
  xenapi: Fix uninitialized variable warning (Matthias Bolte),
  Add a missing break statement to nwfilter errors. (Chris Lalancette),
  VBox: Fix use of uninitialized value (Jiri Denemark),
  Allow domain disk images on root-squash NFS to coexist with security driver. (Laine Stump),
  Don't use virFileReadLimFD in qemuDomainRestore. (Chris Lalancette),
  nwfilter's XML parser bug fixes (Stefan Berger),
  ESX test case needs '/' in interface name (Stefan Berger),
  Fix linker errors in proxy (Matthias Bolte),
  virConnectGetLibVersion: Avoid error message on success. (Paolo Smiraglia),
  Fix daemon hook script initialization (Daniel Veillard),
  Fix QEMU cpu affinity at startup to include all threads (Daniel P. Berrange),
  Fix "make check" run requesting authentication (Stefan Berger),
  Don't replace persistent domain config with migrated config (Jiri Denemark),
  Fix build break (David Allan),
  esx: Make the conf parser compare names case insensitive in VMX mode (Matthias Bolte),
  vbox: Fix segfault on empty device source (Matthias Bolte),
  python example: poll(-0.001) does not sleep forever (Philipp Hahn),
  Fix error reporting when parsing CPU XML strings (Jiri Denemark),
  virDiskNameToIndex: ignore trailing digits (Jim Meyering),
  esx: Fix potential memory leak in esxVI_BuildFullTraversalSpecItem (Matthias Bolte),
  Avoid libvirtd crash when cgroups is not configured on host (Jim Fehlig),
  security: selinux: Fix crash when releasing non-existent label (Cole Robinson),
  Don't crash without a security driver (Guido Günther),
  qemu: Fix FD leak in qemudStartVMDaemon (Matthias Bolte),
  util: ensure virMutexInit is not recursive (Eric Blake),
  Fix logroate rpm build breakage (Daniel Veillard),
  Fix LSB compliance of init script (Daniel Veillard),
  python: Fix networkLookupByUUID (Philip Hahn),
  Fix make dist with XenAPI changes (Cole Robinson),
  xenapi: Don't leak url and caps in case of error (Matthias Bolte),
  xenapi: Check for NULL before accessing the scheme (Matthias Bolte),
  xenapi: Request a username if there is non in the URI (Matthias Bolte),
  xenapi: Check for valid private data in xenapiSessionErrorHandle (Matthias Bolte),
  Use fsync() at the end of file allocation instead of O_DSYNC (Jiri Denemark),
  security: Set permissions for kernel/initrd (Cole Robinson),
  qemu: Fix USB by product with security enabled (Cole Robinson),
  Make nodeGetInfo report the correct number of NUMA nodes. (Chris Lalancette),
  Fix crash in virsh after bogus command (Chris Lalancette),
  Fix virsh command 'cd' (Chris Lalancette),
  Fix hang in qemudDomainCoreDump. (Chris Lalancette),
  Make sure qemudDomainSetVcpus doesn't hang. (Chris Lalancette),
  Fix a JSON CPU information bug. (Chris Lalancette),
  Free resources on error in udev startup (David Allan),
  Fix up nodeinfo parsing code. (Chris Lalancette),
  Wipe nodeinfo structure before filling it (Jiri Denemark),
  macvtap build detection fix (Stefan Berger),
  Fix virDomainGetXMLDesc cache settings output (Soren Hansen),
  Fix locking in qemudDomainMemoryStats (Adam Litke),
  qemu restore: don't let corrupt input provoke unwarranted OOM (Jim Meyering),
  virFileReadLimFD: diagnose maxlen <= 0, rather than passing it on... (Jim Meyering),
  xen: don't let bogus packets trigger over-allocation and segfault (Jim Meyering)
- Improvements:
  Rename virsh "revert-to-snapshot" to "snapshot-revert" (Chris Lalancette),
  nwfilter: Process DHCP option to determine whether packet is a DHCP_OFFER (Stefan Berger),
  Add enospace option to qemu disk error policy (David Allan),
  nwfilter: More XML parser test cases (Stefan Berger),
  remote: Replace some virRaiseError with remoteError (Matthias Bolte),
  Generate libvirt.def from libvirt.syms (Matthias Bolte),
  Fix up python bindings for new event callbacks (Daniel P. Berrange),
  esx: Allow 'lsisas1068' as SCSI controller type (Matthias Bolte),
  esx: Report an error for invalid arguments in esxList(Defined)Domains (Matthias Bolte),
  nwfilter: Support for learning a VM's IP address (Stefan Berger),
  Properly advertise cpuselection guest capability (Jiri Denemark),
  Update of the apparmor regression tests (Jamie Strandboge),
  Improve the apparmor example (Jamie Strandboge),
  Improve virt-aa-helper to handle SDL graphics and cleanups (Jamie Strandboge),
  Adjust virt-aa-helper to handle pci devices (Jamie Strandboge),
  Add backingstore support to apparmor (Jamie Strandboge),
  build: avoid autogen on 'make clean' (Eric Blake),
  Add filter schema for nwfilter XML, extend domain XML schema (Stefan Berger),
  Add filter schema for nwfilter XML, extend domain XML schema (Stefan Berger),
  nwfilter: Fix instantiated layer 2 rules for 'inout' direction (Stefan Berger),
  Better error reporting in virsh. (Chris Lalancette),
  Snapshot virsh implementation. (Chris Lalancette),
  Snapshots for VBox (Jiri Denemark),
  Snapshot QEMU driver. (Chris Lalancette),
  Snapshot internal methods. (Chris Lalancette),
  xenapi: Add managedsave entries to the driver struct (Matthias Bolte),
  Add a managedsave command to virsh (Daniel Veillard),
  Implement managed save operations for qemu driver (Daniel Veillard),
  Implement remote protocol for managed save (Daniel Veillard),
  build: improve check for out-of-date .gnulib submodule (Eric Blake),
  optimizes the validation of the name of an interface (Stefan Berger),
  adds a couple of test cases for the XML parsing test suite (Stefan Berger),
  build: import latest gnulib (Eric Blake),
  Changes to clock timer XML to match final design. (Laine Stump),
  Keep build quiet for generated file (Daniel P. Berrange),
  Keep track of guest paused state after disk IO / watchdog events (Daniel P. Berrange),
  virsh: add 'exit' as an alias for 'quit' (Eric Blake),
  maint: mark xenapiSessionErrorHandler messages for translation (Jim Meyering),
  Blank out invalid interface names with escaped letters etc. (Stefan Berger),
  esx: Generate most SOAP mapping and improve inheritance handling (Matthias Bolte),
  Distribute nwfilter xml files and add them to rpm (Daniel Veillard),
  Make sure nwfilter headers are part of distribution (Daniel Veillard),
  maint: show which compiler warning triggered (Eric Blake),
  build: automate the rerun of autogen.sh (Eric Blake),
  makes the entries in the int-2-string maps more readable (Stefan Berger),
  Add ip6tables support for IPv6 filtering (Stefan Berger),
  Add support for so-far missing protocols for iptables filtering (Stefan Berger),
  Implement the qemu-kvm backend of clock timer elements (Laine Stump),
  Add flags to indicate presence of timekeeping-related qemu options (Laine Stump),
  Add timer element to domain schema (Laine Stump),
  virsh: support VISUAL, and allow metacharacters in EDITOR (Eric Blake),
  Add dummy nwfilter driver to test driver (Stefan Berger),
  Add script hook support to the LXC driver (Daniel Veillard),
  Add script hook support to the QEmu driver (Daniel Veillard),
  Add the script hook support to the libvirt daemon (Daniel Veillard),
  Add an error module and message for the hooks subsystem (Daniel Veillard),
  Export virPipeReadUntilEOF internally (Daniel Veillard),
  Introduce UPDATE_CPU flag for virDomainGetXMLDesc (Jiri Denemark),
  Helper function for making a copy of virCPUDefPtr (Jiri Denemark),
  filter new files through cppi, so syntax-check passes once again (Jim Meyering),
  Add disk error policy to domain XML (David Allan),
  build: don't lose prior configure args on autogen.sh (Eric Blake),
  build: update gnulib (Eric Blake),
  Add some examples filters (Stefan Berger),
  Extensions for iptables rules (Stefan Berger),
  Add IPv6 support for the ebtables layer (Stefan Berger),
  Add qemu support (Stefan Berger),
  Core driver implementation with ebtables support (Stefan Berger),
  Add XML parser extensions for network filtering (Stefan Berger),
  Add virsh support for new CLI commands (Stefan Berger),
  Definition of the wire format, RPC client & server (Stefan Berger),
  Add Network filtering internal API (Stefan Berger),
  Add Network filtering public API (Stefan Berger),
  Add recursive locks (Stefan Berger),
  Implement VNC password change in QEMU (Daniel P. Berrange),
  Allow parsing <graphics> in device XML (Daniel P. Berrange),
  Introduce a update-device command in virsh (Daniel P. Berrange),
  Implement virDomainUpdateDeviceFlags API in all drivers with media change (Daniel P. Berrange),
  Remote protocol impl for virDomainUpdateDeviceFlags (Daniel P. Berrange),
  Add domain events for graphics network clients (Daniel P. Berrange),
  Add support for an explicit IO error event (Daniel P. Berrange),
  Add support for an explicit watchdog event (Daniel P. Berrange),
  Add support for an explicit RTC change event (Daniel P. Berrange),
  Add support for an explicit guest reboot event (Daniel P. Berrange),
  Rename domain lifecycle event message (Daniel P. Berrange),
  Convert domain events example to new API (Daniel P. Berrange),
  Remote driver & daemon impl of new event API (Daniel P. Berrange),
  Support new event register/deregister APis in all drivers except remote (Daniel P. Berrange),
  Add new internal domain events APIs for handling other event types (Daniel P. Berrange),
  Refactor domain events to handle multiple event types (Daniel P. Berrange),
  Make internal domain events struct definitions private (Daniel P. Berrange),
  tests: teach syntax-check that virDomainDefFree has free-like semantics (Jim Meyering),
  Add entry point logging for cpu functions (Jiri Denemark),
  build: suppress distracting build output (Jim Meyering),
  maint: add syntax-check rule to prohibit use of test's -a operator (Jim Meyering),
  tests: shell script portability and clean-up (Jim Meyering),
  tests: Don't add extra padding if counter mod 40 is 0 (Matthias Bolte),
  Use common XML parsing functions (Jiri Denemark),
  Introduce XML parsing utility functions (Jiri Denemark),
  virDomainDiskDefAssignAddress: return int, not void (Jim Meyering),
  tests: do not use the ":disk" suffix in sample xml input (Jim Meyering),
  util: Make some conditional symbols unconditional (Matthias Bolte),
  Export conditional state driver symbols only when they are defined (Matthias Bolte),
  esx: Add esxVI_LookupVirtualMachineByName (Matthias Bolte),
  esx: Generate method mappings via macros (Matthias Bolte),
  Add migrate-setmaxdowntime command to virsh (Jiri Denemark),
  Implement virDomainMigrateSetMaxDowntime in qemu driver (Jiri Denemark),
  Implement virDomainMigrateSetMaxDowntime in remote driver (Jiri Denemark),
  Wire protocol and dispatcher for virDomainMigrateSetMaxDowntime (Jiri Denemark),
  Internal driver API for virDomainMigrateSetMaxDowntime (Jiri Denemark),
  Virsh support for vol wiping (David Allan),
  Simplified version of volume wiping based on feedback from the list. (David Allan),
  Implement remote bits for vol wiping (David Allan),
  Implement the public API for vol wiping (David Allan),
  Define the internal driver API for vol wiping (David Allan),
  Support vhost-net mode at qemu startup for virtio network devices (Laine Stump),
  maint: enforce recent N_ usage (Eric Blake),
  Allow suspend during live migration (Jiri Denemark),
  do not require two ./autogen.sh runs to permit "make" (Jim Meyering),
  esx: Move username and password helper functions to authhelper.c (Matthias Bolte),
  Use WARN_CFLAGS when compiling virsh.c (Jiri Denemark),
  qemu: Add some debugging at domain startup (Cole Robinson),
  qemu: pass the information when disks are read-only (Daniel Veillard),
  macvtap: Only export symbols if support is enabled (Matthias Bolte),
  Only use the numa functions when they are available. (Chris Lalancette),
  Allow devices without a parent (Ed Swierk),
  build: change to gnulib module list should rerun bootstrap (Eric Blake),
  build: enforce preprocessor indentation (Eric Blake),
  build: update gnulib submodule to newer (but not latest) (Jim Meyering),
  Make virsh reconnect when losing connection (Daniel Veillard),
  Change logrotate to be per-hypervisor logs (Daniel Veillard),
  build: consistently indent preprocessor directives (Eric Blake),
  virsh: use N_ rather than gettext_noop (Eric Blake),
  virsh: fix existing N_ uses (Eric Blake),
  Get thread and socket information in virsh nodeinfo. (Chris Lalancette),
  Eliminate large stack buffer in doTunnelSendAll (Laine Stump),
  build: consistently use C99 varargs macros (Eric Blake)
- Cleanups:
  Fix some cppi prepocessor indentation issues (Daniel Veillard),
  Cleanup the msg_gen_function list in cfg.mk (Matthias Bolte),
  remote: Remove virConnectPtr from error/errorf (Matthias Bolte),
  Remove undefined symbols from symbols file (Matthias Bolte),
  Add missing nwfilter_learnipaddr.c to POTFILES.in (Daniel P. Berrange),
  Avoid searching for windres when not building for Windows (Diego Elio Pettenò),
  Executable does not belong into repository. (Stefan Berger),
  xenXMDomainDefineXML: remove dead store and useless/leaky virGetDomain (Jim Meyering),
  createRawFileOpHook: avoid dead stores (Jim Meyering),
  qemudDomainGetSecurityLabel: avoid dead store to "type" (Jim Meyering),
  Cleanup x86Compute() (Jiri Denemark),
  qemuDomainSnapshotLoad: avoid dead store (Jim Meyering),
  maint: s/initialis/initializ/ (Eric Blake),
  Fix 'avialable' typo (Matthias Bolte),
  macvtap: Remove virConnectPtr from ReportError (Matthias Bolte),
  phyp: Remove virConnectPtr from PHYP_ERROR (Matthias Bolte),
  esx: Mark error messages for translation (Matthias Bolte),
  vbox: Mark all error messages for translation (Matthias Bolte),
  Clarify an error message in setmem. (Chris Lalancette),
  Fix up comments for isEncrypted, isSecure, domainIsActive, and domainIsPersistent. (Chris Lalancette),
  Fix compiler warning about unused conn parameter (Matthias Bolte),
  openvz: Remove virConnectPtr from openvzError (Matthias Bolte),
  one: Remove virConnectPtr from oneError (Matthias Bolte),
  uml: Remove virConnectPtr from umlReportError (Matthias Bolte),
  Remove virConnectPtr from eventReportError (Matthias Bolte),
  Remove virConnectPtr from virLibConnError (Matthias Bolte),
  xen: Remove virConnectPtr from xenUnifiedError (Matthias Bolte),
  Remove virConnectPtr from nodeReportError (Matthias Bolte),
  netcf: Remove virConnectPtr from interfaceReportError (Matthias Bolte),
  xen: Remove virConnectPtr from virXenInotifyError (Matthias Bolte),
  xen: Remove virConnectPtr from virXenStoreError (Matthias Bolte),
  xen: Remove virConnectPtr from virXenError/virXenErrorFunc (Matthias Bolte),
  xen: Remove virConnectPtr from virXMError (Matthias Bolte),
  xen: Remove virConnectPtr from virXendError (Matthias Bolte),
  proxy: Remove virConnectPtr from virProxyError (Matthias Bolte),
  vbox: Remove virConnectPtr from vboxError (Matthias Bolte),
  test: Remove virConnectPtr from testError (Matthias Bolte),
  Remove unnecessary trailing \n in log messages (Matthias Bolte),
  Fix compiler warning about non-literal format string (Matthias Bolte),
  removes the virConnectPtr parameter where not necessary (Stefan Berger),
  Clarified error message (David Allan),
  Eliminate compiler warning about non-const format string (Laine Stump),
  Get rid of the regular expressions (Stefan Berger),
  Use the virStrToLong_ui() function rather than virStrToLong_i() (Stefan Berger),
  Make virDomainLoadConfig static. (Chris Lalancette),
  Eliminate compile warnings in nwfilter error log calls (Laine Stump),
  Only parse 'CPU XML' in virCPUDefParseXML() (Jim Fehlig),
  Replace sscanf in PCI device address parsing (Matthias Bolte),
  xen: Use virStrToLong_i instead of sscanf for XenD port parsing (Matthias Bolte),
  xenapi: Use virStrToLong_i instead of sscanf for CPU map parsing (Matthias Bolte),
  openvz: Use strtok_r instead of sscanf for VPS UUID parsing (Matthias Bolte),
  xen: Use virParseMacAddr instead of sscanf (Matthias Bolte),
  vbox: Replace atoi with virStrToLong_i (Matthias Bolte),
  cgroup: Replace sscanf with virStrToLong_ll (Matthias Bolte),
  Refactor major.minor.micro version parsing into a function (Matthias Bolte),
  Replace sscanf in nwfilter rule parsing (Matthias Bolte),
  Replace sscanf in legacy device address parsing (Matthias Bolte),
  build: more fallout from test -a (Eric Blake),
  Fix apibuild.py warning about virNWFilterLookupByUUIDString (Matthias Bolte),
  maint: remove redundant tests after virStrToLong (Eric Blake),
  maint: update AUTHORS (Eric Blake),
  maint: fix cpp indentation syntax-check failure (Jim Meyering),
  Add virt-aa-helper and secaatest to .gitignore (Matthias Bolte),
  esx: Remove redundant semicolons (Matthias Bolte),
  Use libvirt's existing ipv6/ipv4 parser/printer (Stefan Berger),
  Remove driver dependency from nwfilter_conf.c (Stefan Berger),
  Fix a merge error leftover (Daniel Veillard),
  Use enum of virDomainNetType (Stefan Berger),
  Silence cppi syntax-check warning (Daniel Veillard),
  maint: update syntax-check rule to also catch test's -o operator (Eric Blake),
  build: don't use "test cond1 -o cond2": it's not portable (Eric Blake),
  build: don't use "test cond1 -a cond2" in configure: it's not portable (Jim Meyering),
  Remove interfaceRegister from libvirt_private.syms (Matthias Bolte),
  esx: Cleanup file header comments (Matthias Bolte),
  maint: enforce recent copyright style (Eric Blake),
  maint: make Red Hat copyright notices consistent (Eric Blake),
  maint: fix typo (Eric Blake),
  docs: <pre> cannot be nested in <p> (Matthias Bolte),
  .gitignore: Ignore generated daemon/libvirtd.logrotate (Cole Robinson),
  phyp: Use virRequestUsername and virRequestPassword (Matthias Bolte),
  fix two "make syntax check" failures (Jim Meyering),
  Fix syntax-check errors (Jiri Denemark),
  Fix error messages in qemu text monitor (Jiri Denemark),
  Fix compiler warnings in virsh.c (Laine Stump),
  Silence compiler complaints about non-literal format strings (Laine Stump),
  Remove qemudDomainSetMaxMemory. (Chris Lalancette),
  Fix copy&paste typos in virProcessInfoGetAffinity (Jiri Denemark),
  AUTHORS: add recent contributors (Eric Blake),
  Fix format string warnings (Laine Stump),
  ebtablesAddRemoveRule: avoid dead store (Jim Meyering),
  virInterfaceDefParseBond: avoid dead stores (Jim Meyering),
  xenXMDomainConfigParse: avoid dead store (Jim Meyering),
  qemuMonitorTextGetMemoryStats: decrease risk of false positive in parsing (Jim Meyering)

### 0.7.7: Mar 5 2010

- Features:
  Introduce public API for domain async job handling (Daniel P. Berrange),
  macvtap support (Stefan Berger),
  Add QEMU support for virtio channel (Matthew Booth),
  Add persistence of PCI addresses to QEMU (Daniel P. Berrange),
  Functions for computing baseline CPU from a set of host CPUs (Jiri Denemark),
  Public API for virDomain{Attach,Detach}DeviceFlags (Jim Fehlig)
- Documentation:
  web docs -- macvtap mode explanation (Stefan Berger),
  Expand docs about clock modes (Daniel P. Berrange),
  docs: Fix syntax warnings from recent changes. (Cole Robinson),
  docs: network: Document <domain> element (Cole Robinson),
  docs: network: Document STP and delay attributes (Cole Robinson),
  docs: domain: Document <description> element (Cole Robinson),
  docs: storage: Document multipath pools (Cole Robinson),
  docs: storage: Document SCSI pools (Cole Robinson),
  docs: storage: Fix backingStore <format> docs (Cole Robinson),
  docs: storage: <volume><key> is always generated. (Cole Robinson),
  docs: storage: Document capacity/alloc 'unit' (Cole Robinson),
  docs: add 3 missing spaces (Dan Kenigsberg),
  Fix typo in comment (Matthew Booth),
  libvirt: Update docs for hotplug only commands (Cole Robinson),
  Fix up a misspelled comment. (Chris Lalancette),
  doc: restrict virDomain{Attach,Detach}Device to active domains (Jim Fehlig),
  docs: Refer to virReportOOMError in the HACKING file (Matthias Bolte),
  docs: Emphasize that devices have to be inside the <devices> element (Matthias Bolte)
- Portability:
  build: vbox: avoid build failure when linking with --no-add-needed (Diego Elio Pettenò),
  build: avoid dlopen-related link failure on rawhide/F13 (Diego Elio Pettenò),
  Add a define for NFS_SUPER_MAGIC (Chris Lalancette),
  Fix compliation of AppArmor related code (Matthias Bolte)
- Bug Fixes:
  Fix USB passthrough based on product/vendor (Daniel P. Berrange),
  Misc fixes for LXC cgroups setup (Daniel P. Berrange),
  Change default for storage uid/gid from getuid()/getgid() to -1/-1 (Laine Stump),
  Fix parser checking of storage pool device (Daniel P. Berrange),
  Add missing device type check in QEMU PCI hotunplug (Daniel P. Berrange),
  Make domain save work on root-squash NFS (Laine Stump),
  Fix domain restore for files on root-squash NFS (Laine Stump),
  Fix USB/PCI device address aliases in QEMU hotplug driver (Daniel P. Berrange),
  Fix detection of errors in QEMU device_add command (Daniel P. Berrange),
  uml: avoid crash on partial read (Eric Blake),
  Fix QEMU domain state after a save attempt fails (Daniel P. Berrange),
  Fix error messages when parsing USB devices in QEMU (Rolf Eike Beer),
  Fix USB hotplug device string in QEMU driver (Rolf Eike Beer),
  phypUUIDTable_Push: do not corrupt output stream upon partial write (Jim Meyering),
  qemu: avoid null dereference on failed migration (Eric Blake),
  Free the macvtap mode string (Stefan Berger),
  libvirtd: do not ignore failure to set group ID in privileged mode (Jim Meyering),
  Ignore SIGWINCH in remote client call to poll(2) (RHBZ#567931). (Richard Jones),
  storage: conf: Correctly calculate exabyte unit (Cole Robinson),
  virsh.c: avoid all leaks in OOM path in cmdCPUBaseline (Jiri Denemark),
  Fixed reference count in virsh pool-build command (David Allan),
  Fix daemon-conf invalid failures (David Allan),
  virBufferAsprintf: do not omit va_end(argptr) call (Jim Meyering),
  xend_internal.c: don't dereference NULL for unexpected input (Jim Meyering),
  virsh: be careful to return "FALSE" upon OOM (Jim Meyering),
  virBufferStrcat: do not skip va_end (Jim Meyering),
  qparams.c: do not skip va_end, twice (Jim Meyering),
  get_virtual_functions_linux: would mistakenly always return zero (Jim Meyering),
  network: bridge: Fix IsActive, IsPersistent (Cole Robinson),
  qemuMonitorTextAddUSBDisk: avoid unconditional leak (Jim Meyering),
  tests: avoid NULL deref upon OOM failure (Jim Meyering),
  qemuInitPasswords: avoid unconditional leak (Jim Meyering),
  qemuMonitorTextAddDevice: avoid unconditional leak (Jim Meyering),
  libvirt-override.c: avoid a leak upon call with invalid argument (Jim Meyering),
  vboxDomainDumpXML: avoid a leak on OOM error path (Jim Meyering),
  virNodeDevCapScsiHostParseXML: avoid an unconditional leak (Jim Meyering),
  uml_driver.c: avoid leak upon failure (Jim Meyering),
  vbox_tmpl.c: avoid an unconditional leak (Jim Meyering),
  openvz (openvzFreeDriver): avoid leaks (Jim Meyering),
  Fix crash in LXC driver open method when URI has no path (Daniel P. Berrange),
  Fix USB device path formatting mixup (Daniel P. Berrange),
  qemu_driver.c: honor dname parameter once again (Jim Meyering),
  plug four virStoragePoolSourceFree-related leaks (Jim Meyering),
  remote_driver.c: avoid leak on OOM error path (Jim Meyering),
  qemu: Increase guest startup timeout to 30 seconds (Cole Robinson),
  Fix security driver configuration (Daniel P. Berrange),
  Escape strings serialized in XML (Daniel Veillard),
  absolutePathFromBaseFile: don't leak when first arg contains no "/" (Jim Meyering),
  sexpr_string: avoid leak on OOM error path (Jim Meyering),
  virDomainChrDefParseXML: don't leak upon invalid input (Jim Meyering),
  virExecWithHook: avoid leak on OOM error path (Jim Meyering),
  cgroup.c: don't leak mem+FD upon OOM (Jim Meyering),
  cgroup.c: avoid unconditional leaks (Jim Meyering),
  virt-pki-validate contains unexpanded SYSCONFDIR variable (Doug Goldstein)
- Improvements:
  Convert QEMU driver all hotunplug code from pci_del to device_del (Daniel P. Berrange),
  Support hot-unplug for USB devices in QEMU (Daniel P. Berrange),
  Tweak container initialization to make upstart/init happier (Daniel P. Berrange),
  Avoid creating top level cgroups if just querying for existance (Daniel P. Berrange),
  Support VCPU hotplug in QEMU guests (Daniel P. Berrange),
  Fix mis-leading error message in pool delete API (Daniel P. Berrange),
  Fix typo in QEMU migration command name (Daniel P. Berrange),
  Don't raise error message from cgroups if QEMU fails to start (Daniel P. Berrange),
  esx: don't ignore failure on close (Eric Blake),
  Fix safezero() (Jiri Denemark),
  Support job cancellation in QEMU driver (Daniel P. Berrange),
  Remote driver implementation for the virDomainAbortJob APi (Daniel P. Berrange),
  Wire up internal entry points for virDomainAbortJob API (Daniel P. Berrange),
  Introduce public API for cancelling async domain jobs (Daniel P. Berrange),
  Add QEMU driver support for job info on migration ops (Daniel P. Berrange),
  Remote driver implmentation of job info API (Daniel P. Berrange),
  Stub out internal driver entry points for job processing (Daniel P. Berrange),
  Use device_del to remove SCSI controllers (Wolfgang Mauerer),
  Fix PCI address handling when controllers are deleted (Wolfgang Mauerer),
  Fix data structure handling when controllers are attached (Wolfgang Mauerer),
  Allow configurable timezones with QEMU (Daniel P. Berrange),
  Allow a timezone to be specified instead of sync to host timezone (Daniel P. Berrange),
  Support variable clock offset mode in QEMU (Daniel P. Berrange),
  Add new clock mode allowing variable adjustments (Daniel P. Berrange),
  Change the internal domain conf representation of localtime/utc (Daniel P. Berrange),
  Use standard spacing for user/pass prompt (Cole Robinson),
  libvirtd: Better initscript error reporting (Cole Robinson),
  qemu: Report binary path if error parsing -help (Cole Robinson),
  remote: Improve daemon startup error reporting (Cole Robinson),
  virsh: Show errors reported by nonAPI functions (Cole Robinson),
  remote: Improve error message when libvirtd isn't running (Cole Robinson),
  build: make git submodule checking more reliable (Jim Meyering),
  Add descriptions for macvtap direct type interfaces (Stefan Berger),
  maint: import modern bootstrap (Eric Blake),
  maint: start factoring bootstrap (Eric Blake),
  build: update gnulib submodule to latest (Jim Meyering),
  Create raw storage files with O_DSYNC (again) (Jiri Denemark),
  Use virFileOperation hook function in virStorageBackendFileSystemVolBuild (Laine Stump),
  Rename virFileCreate to virFileOperation, add hook function (Laine Stump),
  qemu: Check for IA64 kvm (Dustin Xiong),
  remote: Print ssh stderr on connection failure (Cole Robinson),
  fix multiple veth problem for OpenVZ (Yuji NISHIDA),
  Better error reporting for failed migration (Chris Lalancette),
  Make an error message in PCI util code clearer (Chris Lalancette),
  macvtap mac_filter support (Stefan Berger),
  macvtap IFF_VNET_HDR configuration (Stefan Berger),
  Use virFork() in __virExec(), virFileCreate() and virDirCreate() (Laine Stump),
  Add virFork() function to utils (Laine Stump),
  Add domain support for virtio channel (Matthew Booth),
  qemu: Explicitly error if guest virtual network is inactive (Cole Robinson),
  virterror: Make SetError work if no previous error was set (Cole Robinson),
  macvtap teardown rework (Stefan Berger),
  Update QEMU JSON balloon command handling (Daniel P. Berrange),
  python: Actually add virConnectGetVersion to generated bindings (Cole Robinson),
  build: inform libtool of m4 directory (Eric Blake),
  Adds a cpu-baseline command for virsh (Jiri Denemark),
  qemu: Make SetVcpu command hotplug only (Cole Robinson),
  qemu: Make Set*Mem commands hotplug only (Cole Robinson),
  Treat missing QEMU 'thread_id' as non-fatal in JSON monitor (Daniel P. Berrange),
  Fix check for primary IDE controller in QEMU PCI slot assignment (Daniel P. Berrange),
  Make error reporting for QEMU JSON mode more friendly (Daniel P. Berrange),
  Run 'qmp_capabilities' command at QEMU monitor startup (Daniel P. Berrange),
  macvtap support for libvirt -- schema extensions (Stefan Berger),
  macvtap support for libvirt -- qemu support (Stefan Berger),
  macvtap support for libvirt -- helper code (Stefan Berger),
  macvtap support for libvirt -- parse new interface XML (Stefan Berger),
  interface: Use proper return codes in the open function (Matthias Bolte),
  Support 'block_passwd' command for QEMU disk encryption (Daniel P. Berrange),
  Implement cpuBaseline in remote and qemu drivers (Jiri Denemark),
  Wire protocol format and dispatcher for virConnectBaselineCPU (Jiri Denemark),
  virConnectBaselineCPU public API implementation (Jiri Denemark),
  Internal driver API for virConnectBaselineCPU (Jiri Denemark),
  virConnectBaselineCPU public API (Jiri Denemark),
  Implement cpuArchBaseline in x86 CPU driver (Jiri Denemark),
  Implement cpuArchBaseline in generic CPU driver (Jiri Denemark),
  Mark all error messages for translation (Jiri Denemark),
  Add cpu_generic.c to the list of translated files (Jiri Denemark),
  Fix <cpu> element in domain XML schema (Jiri Denemark),
  Fix disk stats retrieval with QEMU >= 0.12 (Daniel P. Berrange),
  qemu: Properly report a startup timeout error (Cole Robinson),
  test: Fake security driver support in capabilities (Cole Robinson),
  Annotate some virConnectPtr as mandatory non-null (Daniel P. Berrange),
  Convert qemu command line flags to 64-bit int (Daniel P. Berrange),
  Create raw storage files with O_DSYNC (Jiri Denemark),
  Re-generate remote protocol files for new APIs (Daniel P. Berrange),
  Modify virsh commands (Jim Fehlig),
  domain{Attach,Detach}DeviceFlags handler for drivers (Jim Fehlig),
  Server side dispatcher (Jim Fehlig),
  Remote driver (Jim Fehlig),
  Wire protocol format (Jim Fehlig),
  Public API Implementation (Jim Fehlig)
- Cleanups:
  virsh: silence compiler warning (Eric Blake),
  build: silence coverity warning in node_device (Eric Blake),
  Tiny spelling fix (Wolfgang Mauerer),
  libvirtd: avoid false-positive NULL-deref warning from clang (Eric Blake),
  x86Decode: avoid NULL-dereference upon questionable input (Jim Meyering),
  openvzDomainDefineCmd: remove useless increment (Jim Meyering),
  maint: disallow TAB-in-indentation also in *.rng files (Jim Meyering),
  maint: convert leading TABs in *.rng files to equivalent spaces (Jim Meyering),
  udevEnumerateDevices: remove dead code (Jim Meyering),
  qemudNetworkIfaceConnect: remove dead store (Jim Meyering),
  cmdPoolDiscoverSources: initialize earlier to avoid FP from clang (Jim Meyering),
  build: avoid warning about return-with-value in void function (Jim Meyering),
  Only build virDomainObjFormat if not building proxy. (Chris Lalancette),
  openvzGetVEID: don't leak (memory + file descriptor) (Jim Meyering),
  build: avoid warning about unused variables (Jim Meyering),
  build: avoid "make rpm" failure in docs/ (Jim Meyering),
  build: teach apibuild.py to work in a non-srcdir build (Jim Meyering),
  build: avoid non-srcdir "make distcheck" failures (CLEANFILES) (Jim Meyering),
  build: avoid non-srcdir "make distcheck" failures (srcdir vs wildcard) (Jim Meyering),
  build: avoid non-srcdir "make distcheck" failure (test_conf.sh) (Jim Meyering),
  build: avoid non-srcdir installation failure (sitemap.html.in) (Jim Meyering),
  build: avoid non-srcdir installation failure (apibuild.py) (Jim Meyering),
  build: fix typos in makefile variable names (Jim Meyering),
  build: ensure that MKINSTALLDIRS is AC_SUBST-defined (Jim Meyering),
  maint: relax git minimum version (Eric Blake),
  maint: sort .gitignore (Eric Blake),
  maint: fix quoting in autogen.sh (Eric Blake),
  virFork: placate static analyzers: ignore pthread_sigmask return value (Jim Meyering),
  virsh.c: avoid leak on OOM error path (Jim Meyering),
  Make virDomainObjFormat static (Chris Lalancette),
  xenDaemonDomainSetAutostart: avoid appearance of impropriety (Jim Meyering),
  Remove unused functions from domain_conf (Matthew Booth),
  Fix whitespace in domain.rng (Matthew Booth),
  openvzLoadDomains: don't ignore failing virUUIDFormat (Jim Meyering),
  vshCommandParse: placate coverity (Jim Meyering),
  virStorageBackendIsMultipath: avoid dead store (Jim Meyering),
  Convert virSecurityReportError into a macro (Matthias Bolte),
  Swap position of nmodels and models parameters in cpuDecode() (Jiri Denemark),
  Remove virConnectPtr from secret XML APIs (Daniel P. Berrange),
  Remove virConnectPtr from interface XML APIs (Daniel P. Berrange),
  Remove virConnectPtr from CPU XML APIs (Daniel P. Berrange),
  Remove virConnectPtr from storage APIs & driver (Daniel P. Berrange),
  Remove virConnectPtr from all node device XML APIs (Daniel P. Berrange),
  Remove virConnectPtr from network XML APis (Daniel P. Berrange),
  Remove virConnectPtr from USB/PCI device iterators (Daniel P. Berrange),
  Fix generation of floppy disk arg for QEMU's -global arg (Daniel P. Berrange),
  Fix compile error in Xen proxy from virConnectPtr changes (Daniel P. Berrange),
  Remove use of virConnectPtr from security driver APIs (Daniel P. Berrange),
  Remove virConnectPtr from all domain XML parsing/formatting APIs (Daniel P. Berrange),
  Remove virConnectPtr from LXC driver (Daniel P. Berrange),
  Remove passing of virConnectPtr throughout QEMU driver (Daniel P. Berrange),
  virAsprintf: remove its warn_unused_result attribute (Jim Meyering),
  absolutePathFromBaseFile: avoid an unnecessary use of assert (Jim Meyering),
  Remove conn parameter from USB functions (Matthias Bolte),
  Remove conn parameter from JSON error macro (Matthias Bolte),
  Remove conn parameter from PCI functions (Matthias Bolte),
  Remove conn parameter from Linux stats functions (Matthias Bolte),
  Remove conn parameter from storage file functions (Matthias Bolte),
  Remove conn parameter from util functions (Matthias Bolte),
  Remove conn parameter from virXPath* functions (Matthias Bolte),
  Remove conn parameter from virReportSystemError (Matthias Bolte),
  Remove conn parameter from virReportOOMError (Matthias Bolte),
  website: Add a 1em right margin (Matthias Bolte),
  storage: Replace storageLog with VIR_ERROR (Matthias Bolte),
  opennebula: Remove unnecessary casts (Matthias Bolte),
  esx: Remove unnecessary casts (Matthias Bolte),
  cpu conf: Use virBufferFreeAndReset instead of virBufferContentAndReset and VIR_FREE (Matthias Bolte),
  esx: Cleanup preprocessing structure in esxVI_EnsureSession (Matthias Bolte)

### 0.7.6: Feb 3 2010

- Features:
  Implement support for multi IQN (David Allan),
  Implement CPU topology support for QEMU driver (Jiri Denemark),
  Use QEmu new device adressing when possible (Daniel P. Berrange),
  Implement SCSI controller hotplug/unplug for QEMU (Wolfgang Mauerer)
- Documentation:
  Add missing function parameter documentation (Matthias Bolte),
  Add docs about new mailing list (Daniel P. Berrange),
  Document cpu-compare command in virsh man page (Jiri Denemark),
  Document cpu elements in capabilities and domain XML (Jiri Denemark),
  docs: Remove outdated information about remote limitations (Matthias Bolte),
  documentation improvements (David Jorm),
  Minor fixes for API extension doc (Jim Fehlig),
  cpu_shares parameter limit documented (David Jorm),
  Document the domain XML cache attribute for disk devices (Matthias Bolte),
  Replace old CVS references with GIT (Matthias Bolte)
- Portability:
  portability to non-glibc: don't use realpath(..., NULL) (Jim Meyering),
  Add some missing include files which break build in certain platforms (Daniel P. Berrange),
  Remove AppArmor compile warnings (Jamie Strandboge),
  Fix compilation of virt-aa-helper.c (Matthias Bolte),
  Fix linkage of virt-aa-helper to libgnu.a (Matthias Bolte)
- Bug Fixes:
  Fix restore of QEMU guests with PCI device reservation (Daniel P. Berrange),
  Another fork() log locking cleanup in file creation (Laine Stump),
  Fix log locking problem when using fork() in the library (Cole Robinson),
  Fix locking for udev device add/remove (David Allan),
  interface_conf.c: don't use a negative value as allocation size (Jim Meyering),
  virStoragePoolSourceListNewSource: avoid unconditional leak (Jim Meyering),
  xs_internal.c: don't use a negative value as allocation size (Jim Meyering),
  Ensure QEMU DAC security driver is activated at all times (Daniel P. Berrange),
  udev: Don't let strtoul parse USB busnum and devnum as octal (Matthias Bolte),
  json.c: avoid an unconditional leak from most qemuMonitorJSON* functions (Jim Meyering),
  Fix PCI host reattach on domain detach. (Chris Lalancette),
  Clarify controllers -device string in QEMU driver (Matthew Booth),
  util.c (virGetUserEnt): don't use a negative value as allocation size (Jim Meyering),
  cpu_x86.c: avoid NULL-deref for invalid arguments (Jim Meyering),
  Fix a crash when restarting libvirtd. (Chris Lalancette),
  qemuMonitorTextAttachDrive: avoid two leaks (Jim Meyering),
  usbGetDevice: don't leak a "usbDevice" buffer on failure path (Jim Meyering),
  qemuMonitorTextGetMemoryStats: plug a leak on an error path (Jim Meyering),
  usbFindBusByVendor: don't leak a DIR buffer and FD (Jim Meyering),
  Fix libvirtd restart for domains with PCI passthrough devices (Chris Lalancette),
  qemu: Fix race between device rebind and kvm cleanup (Chris Lalancette),
  Fix device assignment with root devices (Chris Lalancette),
  Corrected log level of WWN path message (David Allan),
  Fix an error when looking for devices in syspath (Daniel Veillard),
  Fix off-by-1 in SCSI drive hotplug (Daniel P. Berrange),
  Fix leak in hotplug code in QEMU driver (Daniel P. Berrange),
  Fix security driver calls in hotplug cleanup paths (Daniel P. Berrange),
  Add missing call to re-attach host devices if VM startup fails (Daniel P. Berrange),
  Pull initial disk labelling out into libvirtd instead of exec hook (Daniel P. Berrange),
  Fix leak of allocated security label (Daniel P. Berrange),
  Create storage pool directories with proper uid/gid/mode (Laine Stump),
  Create storage volumes directly with desired uid/gid (Laine Stump),
  Unset copied environment variables in qemuxml2argvtest (Matthias Bolte),
  qemu: Don't allocate zero bytes (Matthias Bolte),
  node_device_linux_sysfs.c: avoid opendir/fd leak on error path (Jim Meyering),
  domain_conf.c: avoid a leak and the need for "cleanup:" block (Jim Meyering),
  Fix QEMU driver custom domain status XML extensions (Daniel P. Berrange),
  xen_driver: don't leak a parsed-config buffer (Jim Meyering),
  storage_conf: plug a leak on OOM error path (Jim Meyering),
  Tests for ACS in PCIe switches (Jiri Denemark),
  storage_backend_fs.c: do not ignore probe failure (Jim Meyering),
  Avoid free'ing a constant string in chardev lookup code (Daniel P. Berrange),
  Fix build of Xen proxy daemon (Daniel P. Berrange),
  xen: do not report a write-to-Xen-daemon failure as a read failure (Jim Meyering),
  daemon: Don't blindly unregister domain events (Cole Robinson),
  node_device: udev: Fix memory leak (Cole Robinson),
  Fix migration in xend driver (Jim Fehlig),
  Ensure error handling callback functions are called from safe context (Daniel P. Berrange),
  qemu: Fix a memory leak in qemudExtractTTYPath (Matthias Bolte),
  Fix UUID random generator to use /dev/random (Laine Stump),
  let "configure --disable-shared" work once again (Jim Meyering),
  Qemu: ask for memory preallocation with large pages (Daniel Veillard),
  network/bridge_driver.c: avoid potential NULL-dereference (Jim Meyering),
  Don't free an uninitalized pointer in update_driver_name() (Matthias Bolte),
  xend_internal: don't let invalid input provoke NULL dereference (Jim Meyering),
  Don't update vol details after build (David Allan),
  vbox_tmpl.c: don't leak a domain pointer upon failure to create (Jim Meyering),
  vbox_tmpl.c: avoid NULL deref upon vboxDomainCreateXML failure (Jim Meyering),
  qemu_driver.c: avoid NULL dereference upon disk-op failure (Jim Meyering),
  openvz_conf.c: don't dereference NULL upon failure (Jim Meyering),
  Distribute vmx2xml and xml2vmx test data files (Matthias Bolte)
- Improvements:
  Tweak USB hostdevice XML handling (Daniel P. Berrange),
  Fix QEMU hotplug device alias assignment (Daniel P. Berrange),
  Disable QEMU monitor IO debugging by default (Daniel P. Berrange),
  Re-arrange QEMU device alias assignment code (Daniel P. Berrange),
  Remove direct storage of hostnet_name & vlan (Daniel P. Berrange),
  Remove use of -netdev arg with QEMU (Daniel P. Berrange),
  Assign PCI addresses before hotplugging devices (Daniel P. Berrange),
  Rewrite way QEMU PCI addresses are allocated (Daniel P. Berrange),
  Introduce generic virDomainDeviceInfo iterator function (Daniel P. Berrange),
  Make hotplug use new device_add where possible (Daniel P. Berrange),
  Introduce internal QEMU monitor APIs for drive + device hotadd (Daniel P. Berrange),
  Split out QEMU code for building PCI/USB hostdev arg values (Daniel P. Berrange),
  Standard internal API syntax for building QEMU command line arguments (Daniel P. Berrange),
  Log flags in virConnectCompareCPU (Jiri Denemark),
  Look in /usr/libexec for the qemu-kvm binary. (Chris Lalancette),
  Support Xen 4.0 sysctl version 7 (Jim Fehlig),
  Add missing sata controller type to domain.rng (Matthew Booth),
  udev: Set the state driver name (Matthias Bolte),
  udev: Remove event handle on shutdown (Matthias Bolte),
  esx: Output error details from libcurl (Matthias Bolte),
  qemu: Search binaries in PATH instead of hardcoding /usr/bin (Matthias Bolte),
  Implement QMP support for extracting CPU thread ID (Daniel P. Berrange),
  Misc fixes to QMP monitor support for QEMU (Daniel P. Berrange),
  Fix setup of compatibility serial devices from console device (Daniel P. Berrange),
  Start modernizing configure (Eric Blake),
  Add a rule to check for uses of readlink. (Chris Lalancette),
  Add virConnectGetVersion Python API (Taizo ITO),
  domMemoryStats / qemu: Fix parsing of unknown stats (Adam Litke),
  Allow surrounding whitespace in uuid (Dan Kenigsberg),
  Add configuration option to turn off dynamic permissions management (Daniel P. Berrange),
  Switch QEMU driver over to use the DAC security driver (Daniel P. Berrange),
  Introduce a new DAC security driver for QEMU (Daniel P. Berrange),
  Introduce a stacked security driver impl for QEMU (Daniel P. Berrange),
  Make security drivers responsible for checking dynamic vs static labelling (Daniel P. Berrange),
  New utility functions virFileCreate and virDirCreate (Laine Stump),
  Add virRunWithHook util function (Laine Stump),
  Update interface.rng and xml test files to match netcf 0.1.5 (Laine Stump),
  Support bond interfaces attached to bridges in interface xml. (Laine Stump),
  Allow empty bridges in interface xml. (Laine Stump),
  Support delay property in interface bridge xml. (Laine Stump),
  Use pciDeviceIsAssignable in qemu driver (Jiri Denemark),
  Allow for CPU topology specification without model (Jiri Denemark),
  Add debug messages for CPU incompatibility (Jiri Denemark),
  Take disabled/forced CPU features into account (Jiri Denemark),
  Enhance qemuParseCommandLineKeywords (Jiri Denemark),
  Convert VirtIO balloon over to -device syntax (Daniel P. Berrange),
  uto-assign PCI addresses (Daniel P. Berrange),
  Pass -vga none if no video card specified (Daniel P. Berrange),
  Add support for explicit -sdl flag to QEMU (Daniel P. Berrange),
  Assign device aliases for all devices at startup (Daniel P. Berrange),
  Add device info to serial, parallel, channel, input & fs devices (Daniel P. Berrange),
  Introduce device aliases (Daniel P. Berrange),
  Clear assigned PCI devices at shutdown (Daniel P. Berrange),
  Auto-add disk controllers based on defined disks (Daniel P. Berrange),
  Remove restriction on duplicated sound devices in parser (Daniel P. Berrange),
  Detect PCI addresses at QEMU startup (Daniel P. Berrange),
  Properly support SCSI drive hotplug (Daniel P. Berrange),
  build: update gnulib submodule to latest (Jim Meyering),
  Use closest CPU model when decoding from CPUID (Jiri Denemark),
  Change detection of xen so that it's actually automatic rather than forced. (Diego Elio Pettenò),
  Standardise ./configure --help options reporting. (Diego Elio Pettenò),
  qemu: Use log output for pty assignment if 'info chardev' is unavailable (Matthias Bolte),
  esx: Add VNC support (Matthias Bolte),
  esx: Make the domain part of the hostname optional (Matthias Bolte),
  esx: Add stubs for secondary driver types (Matthias Bolte),
  Specify bus/unit instead of index for disks with QEMU (Daniel P. Berrange),
  Split code for building QEMU -drive arg in separate method (Daniel P. Berrange),
  Convert monitor over to use virDomainDeviceAddress (Daniel P. Berrange),
  Add new domain device: "controller" (Wolfgang Mauerer),
  Set default disk controller/bus/unit props (Daniel P. Berrange),
  Add address info to sound, video and watchdog devices (Daniel P. Berrange),
  Extend the virDomainDeviceAddress struture to allow disk controller addresses (Daniel P. Berrange),
  Introduce a standardized data structure for device addresses (Daniel P. Berrange),
  util: Make sure virExec hook failures are raised (Cole Robinson),
  Implement path lookup for USB by vendor:product (Cole Robinson),
  events: Report errors on failure (Cole Robinson),
  node_device: udev: Enumerate floppy devices (Cole Robinson),
  node_device: udev: Use base 16 for product/vendor (Cole Robinson),
  libvirt.c: Preserve MigratePerform failure (Cole Robinson),
  qemu: migrate: Save MigratePerform error in MigrateFinish. (Cole Robinson),
  virterror: Add virSetError (Cole Robinson),
  Also look for dmi information in /sys/class (Guido Günther),
  proxy_internal.c: mark "request" parameter as nonnull (Jim Meyering),
  esx: Dump the raw response in case of an SOAP fault (Matthias Bolte),
  esx: Warn if the ESX server is in maintenance mode (Matthias Bolte),
  xen hypervisor: xen domctl version 6 (Jim Fehlig),
  virsh: Add persistent history using libreadline (Matthias Bolte),
  esx: Fix 'vpx' MAC address range and allow arbitrary MAC addresses (Matthias Bolte),
  esx: Fix deserialization for VI API calls CancelTask and UnregisterVM (Matthias Bolte),
  esx: Fix and improve the libcurl debug callback (Matthias Bolte),
  esx: Also allow virtualHW version 4 for ESX 4.0 (Matthias Bolte),
  qemu: Always enable the virtio balloon driver (Adam Litke),
  Disable building of static Python module (Diego Elio Pettenò),
  Fix parsing of 'info chardev' line endings (Matthew Booth)
- Cleanups:
  xen_hypervisor.c: remove all "domain == NULL" tests, ... (Jim Meyering),
  xen_hypervisor.c: avoid NULL deref for NULL domain argument (Jim Meyering),
  libvirtd.c: avoid closing a negative socket file descriptor (Jim Meyering),
  storage_backend.c: avoid closing a negative file descriptor (Jim Meyering),
  avoid a probable EINVAL from lseek (Jim Meyering),
  util.c (two more): don't use a negative value as allocation size (Jim Meyering),
  avoid format-related warnings (Jim Meyering),
  maint: avoid excess parens in STREQ (Eric Blake),
  Move models/nmodels mismatch checking one level up (Jiri Denemark),
  Fix up a comment in virHashUpdateEntry (Chris Lalancette),
  maint: fix spelling error in hacking (Eric Blake),
  pci.c: correct an erroneous expression (Jim Meyering),
  Remove undefined symbols from libvirt_private.syms (Matthias Bolte),
  Don't call disabled timer callbacks in event-test.c (Matthias Bolte),
  hostusb: closedir only if non-NULL; rename labels: s/error/cleanup/ (Jim Meyering),
  Cleanup of large buffer on stack in virFileMakePath (Laine Stump),
  esx: Stop passing around virConnectPtr for error reporting (Matthias Bolte),
  Revert "Fix libvirtd restart for domains with PCI passthrough devices" (Chris Lalancette),
  Fix two instances of misspelled 'pseudo' (Chris Lalancette),
  Use virFileResolveLink instead of readlink in AppArmor (Chris Lalancette),
  Fix a compile warning in parthelper.c (Chris Lalancette),
  Remove unused PROC_MOUNT_BUF_LEN #define (Chris Lalancette),
  fix "make distcheck" failure (Jim Meyering),
  avoid format-related warnings (Jim Meyering),
  Refactor setup & cleanup of security labels in security driver (Daniel P. Berrange),
  Let make fail when XHTML validation fails (Jiri Denemark),
  Fix uses of virFileMakePath (Laine Stump),
  remove unnecessary closedir call (Jim Meyering),
  Make all bitfields unsigned ints to avoid unexpected values in casts (Daniel P. Berrange),
  logging: confirm that we want to ignore a write error (Jim Meyering),
  Remove superfluous new lines from messages (Jiri Denemark),
  vbox_tmpl.c: remove useless array-is-non-NULL comparisons (Jim Meyering),
  lxc_driver: remove useless comparison (Jim Meyering),
  gnulib added a new syntax-check test: use $(VAR), not @VAR@ (Jim Meyering),
  storage_backend.h: include required headers (Jim Meyering),
  esx_vi_types.c: include required headers (Jim Meyering),
  vbox: include required headers (Jim Meyering),
  cpu_x86_data.h: include required header (Jim Meyering),
  util.c: include required header, no longer masked by gnulib (Jim Meyering),
  Fix validation of news.html (Matthias Bolte),
  Remove obsolete comment in QEMU JSON code (Daniel P. Berrange),
  Make test suite output less verbose (Daniel P. Berrange),
  daemon: Fix various error reporting issues (Cole Robinson),
  util: Remove logging handlers in virExec (Cole Robinson),
  Commit bootstrap .gitignore additions (Cole Robinson),
  qemu: Disable errors in qemudShutdownVMDaemon (Cole Robinson),
  avoid another "make distcheck" failure (Jim Meyering),
  avoid newly-introduced test failure (Jim Meyering),
  don't test "res == NULL" after we've already dereferenced "res" (Jim Meyering),
  fix 7 "make check" test failures in non-srcdir build (Jim Meyering),
  virsh: Use VIR_FREE instead of free (Matthias Bolte),
  esx: Don't warn about an empty URI path (Matthias Bolte),
  qemu_driver.c: remove useless, warning-provoking test (Jim Meyering)

### 0.7.5: Dec 23 2009

- Features:
  Add new API virDomainMemoryStats to header and drivers (Adam Litke),
  Public API and domain extension for CPU flags (Jiri Denemark),
  expose SR IOV physical/virtual function relationships (Dave Allan),
  Support for JSON mode monitor [deactivated] (Daniel P. Berrange),
  Support for interface model='netfront' (Jiri Denemark),
  vbox: Add support for version 3.1 (Pritesh Kothari),
  Support QEMU's virtual FAT block device driver (Daniel P. Berrange)
- Documentation:
  Document the dommemstat command in the virsh man page (Adam Litke),
  esx: Add more links to external documentation (Matthias Bolte),
  esx: Extend documentation about 'vcenter' and add some about 'auto_answer' (Matthias Bolte),
  Fix and improve domain xml video element description (Matthias Bolte),
  Fix owner and group in example volume XML (Matthew Booth),
  add missing doc for device <shareable/> option (Daniel Veillard),
  add AppArmor test and examples to dist (Jamie Strandboge),
  Update location of C# bindings. (Richard Jones),
  Fix typo in QEMU driver webpage (Daniel P. Berrange),
  Clarify documentation for private symbols (Wolfgang Mauerer),
  Fix news.html validation (Dan Kenigsberg)
- Portability:
  Define ATTRIBUTE_SENTINEL for GCC < 4.0 too (Matthias Bolte),
  Fix compilation with configure --disable-nls (Matthias Bolte),
  Fix configure check for SASL (Matthias Bolte),
  Fix GnuTLS pkg-config check (Matthias Bolte),
  Report an error if no XDR library can be found (Matthias Bolte),
  Fix compilation with gcrypt < 1.4.2 (Matthias Bolte),
  Don't mix LDFLAGS and LIBS in the configure script (Diego Elio Pettenò),
  Don't make it possible to define HAVE_HAL but not enable it in automake (Diego Elio Pettenò),
  Fix install location for Python bindings (Matthias Bolte),
  Use AM_PATH_PYTHON and python-config to detect Python configuration (Matthias Bolte),
  Fix a compilation failure if yajl not avail (Daniel Veillard),
  Fix compilation for configure --disable-nls (Matthias Bolte)
- Bug fixes:
  cpu: Fix memory leaks in x86FeatureLoad and x86ModelLoad (Matthias Bolte),
  Make Xen VT-d PCI attach/detach work (Chris Lalancette),
  Fix detection of JSON when restarting libvirtd (Daniel P. Berrange),
  Fix reporting of TLS connection errors (Daniel P. Berrange),
  Fix typo in qemudDomainAttachHostPciDevice() (Daniel Veillard),
  esx: Destroy virtual machine on a vCenter if available (Matthias Bolte),
  esx: Undefine virtual machine on a vCenter if available (Matthias Bolte),
  Initialize gcrypt threading (Daniel P. Berrange),
  Fix bug in storage driver accessing wrong private data (Daniel P. Berrange),
  esx_vi.c: do not call through NULL function pointer (Jim Meyering),
  esx_util.c: avoid NULL deref for invalid inputs (Jim Meyering),
  esx: Don't goto failure for invalid arguments in VMX code (Matthias Bolte),
  Fix memory leak in qemudBuildCommandLine (Matthias Bolte),
  avoid malfunction when virFileResolveLink is applied to non-POSIX FS (Jim Meyering),
  libvirt.c: don't let a NULL "cpumaps" argument provoke a NULL-deref (Jim Meyering),
  qemu migration: avoid NULL-deref given an invalid input (Jim Meyering),
  qemu_driver.c: don't unlink(NULL) on OOM error path (Jim Meyering),
  remote_driver.c: also zero out ->saslDecodedOffset member (Jim Meyering),
  qemu_driver.c: avoid double free on error path (Jim Meyering),
  libvirtd: avoid a NULL dereference on error path (Jim Meyering),
  virsh: avoid double-free (Jim Meyering),
  node_device_driver.c: don't write beyond EOB for 4K-byte symlink (Jim Meyering),
  Eliminate failure to delete empty storage pools (Laine Stump),
  Fix use of virEventAddHandleImpl() (Jiri Denemark),
  Fix possible NULL pointer dereference (Paolo Bonzini),
  fix various breakages in qemu Dump command (Paolo Bonzini),
  Fix reference leak in remoteDispatchStorageVolCreateXmlFrom (Matthias Bolte),
  Fix memory leak in virStorageBackendCopyToFD (Matthias Bolte),
  retrieve paused/running state at migration start (Paolo Bonzini),
  fix migration of paused vms upon failure (Paolo Bonzini),
  qemu driver: Fix segfault in libvirt/libvirtd when uri->path is NULL. (Richard Jones),
  Fix a wellformedness problem in secret.rng (Diego Elio Pettenò),
  Fix virDomainObj ref handling in QEMU driver (Daniel P. Berrange),
  Pull code to start CPUs executing out of qemudInitCpuAffinity() (Daniel P. Berrange),
  Fix migration cancellation for QEMU (Daniel P. Berrange),
  Fix crash when deleting monitor while a command is in progress (Daniel P. Berrange),
  udev_device_get_devpath might return NULL (Guido Günther),
  Fix some locking issues (Matthias Bolte),
  Fix event test timer checks on kernels with HZ=100 (Daniel P. Berrange),
  Fix threading problems in python bindings (Daniel P. Berrange),
  Supress annoying libcap-ng errors from valgrind (Daniel P. Berrange),
  Fix two leaks in test driver (Daniel P. Berrange),
  Free cgroup device ACL list on driver shutdown (Daniel P. Berrange),
  xen: Fix unconditional freeing in xenDaemonListDefinedDomains() (Matthias Bolte),
  Fix default disk type when parsing QEMU argv (Daniel P. Berrange),
  remove port filter when network device is detached (Gerhard Stenzel)
- Improvements:
  convert missing server entry points into unsupported errors (Daniel Veillard),
  fix some error report when on remote access (Olivier Fourdan),
  Disable JSON mode monitor until QEMU is more mature (Daniel P. Berrange),
  Only probe for CPU models if required (Jiri Denemark),
  Add cpu_map.xml to libvirt.spec (Jiri Denemark),
  Install cpu_map.xml (Jiri Denemark),
  esx: Don't warn about '/' paths (Matthias Bolte),
  esx: Extend vCenter query parameter (Matthias Bolte),
  esx: Improve domain lookup by UUID (Matthias Bolte),
  build: update gnulib submodule to latest (Jim Meyering),
  Relax the allowed values for machine type in schema (Daniel Veillard),
  Implement --pool option for virsh vol-path (Dave Allan),
  nodedev: Add removable storage 'media_label' prop (Cole Robinson),
  add --live support to "virsh dump" (Paolo Bonzini),
  add --crash support to "virsh dump" (Paolo Bonzini),
  Get QEMU pty paths from the monitor (Matthew Booth),
  Extract the assigned pty device for QEmu channels (Matthew Booth),
  Make QEMU driver use -chardev everywhere if available (Matthew Booth),
  add virsh --suspend arg to migrate command (Paolo Bonzini),
  reload iptables rules on libvirtd restart (Mark McLoughlin),
  reload iptables rules simply by re-adding them (Mark McLoughlin),
  Plumb domain description tag in xend backend (Jim Fehlig),
  Make QEMU text monitor parsing more robust (Daniel P. Berrange),
  Hook up JSON monitor to emit basic lifecycle events (Daniel P. Berrange),
  Add QEMU monitor callbacks for basic lifecycle events (Daniel P. Berrange),
  Switch over to passing a callback table to QEMU monitor (Daniel P. Berrange),
  Introduce callbacks for serializing domain object private data to XML (Daniel P. Berrange),
  Switch LXC driver to use a private data blob for virDomainObj state (Daniel P. Berrange),
  Switch UML driver to use a private data blob for virDomainObj state (Daniel P. Berrange),
  Add a 'format' arg to qemuMonitorChangeMedia() since JSON will support it (Daniel P. Berrange),
  Introduce a simple API for handling JSON data (Daniel P. Berrange),
  Add --system flag to autogen.sh to make it easy to build with right prefix (Daniel P. Berrange),
  Export all symbols from xml.h for internal use (Jiri Denemark),
  vbox: Use virIndexToDiskName() in vboxGenerateMediumName() (Matthias Bolte),
  Tests for interface type/model configuration (Jiri Denemark),
  Add virIndexToDiskName and fix mapping gap (Matthias Bolte),
  Add another SENTINEL attribute (Paolo Bonzini),
  Fix help message (Wolfgang Mauerer),
  Alternate CPU affinity impl to cope with NR_CPUS > 1024 (Daniel P. Berrange)
- Cleanups:
  The secret driver is stateful, link it directly to libvirtd (Matthias Bolte),
  Remove undefined symbols from libvirt_private.syms (Matthias Bolte),
  boolean shadows a typedef in rpcndr.h when compiled with MinGW (Matthias Bolte),
  Rename DATADIR to PKGDATADIR to fix win32 build (Jiri Denemark),
  Move cpu_map.xml to -client RPM (Jiri Denemark),
  Fix undefined reference to 'close_used_without_including_unistd_h' (Matthias Bolte),
  Fix argument type of virProcessInfoSetAffinity dummy function (Matthias Bolte),
  esx: Use occurrence enum to specify expected result of a SOAP call (Matthias Bolte),
  esx: Fix occurence typo (Matthias Bolte),
  esx: Removed unused inttypes.h include (Matthias Bolte),
  esx: Replace libxml1 'xmlChildrenNode' with libxml2 'children' (Matthias Bolte),
  esx: Use more suitable error code in esxVI_LookupVirtualMachineByUuid() (Matthias Bolte),
  esx: Add automatic question handling (Matthias Bolte),
  avoid calling exit with a constant; use EXIT_* instead (Jim Meyering),
  maint: remove from VC two gnulib-provided files (Jim Meyering),
  xm_internal.c: remove misleading dead code (Jim Meyering),
  Cleanup temporary #define after use (Matthew Booth),
  Suppress cgroup error message on sucess startup (Ryota Ozaki),
  Small change of RNG syntax for domain (Diego Elio Pettenò),
  remove iptablesReloadRules() and related code (Mark McLoughlin),
  remove all traces of lokkit support (Mark McLoughlin),
  Add virBufferFreeAndReset() and replace free() (Matthias Bolte),
  Fix the news file non-ascii characters (Daniel Veillard),
  Add missing commas to the 0.7.4 news section (Matthias Bolte),
  Change generated HTML to UTF-8 encoding (Daniel Veillard),
  Avoid an type-punned pointer aliasing pbm (Daniel Veillard),
  Move qemuMonitorEscape + migrate status enum into shared monitor code (Daniel P. Berrange),
  vbox: Update IIDs from version 3.1-beta2 to 3.1-final (Matthias Bolte),
  Fix ReprotError vs ReportError typo in JSON code (Daniel P. Berrange),
  Fix inverted conditional test in configure.ac check for yajl (Daniel P. Berrange),
  Pull schedular affinity code out into a separate module (Daniel P. Berrange),
  Ignore docs/ directory for strcmp() syntax check (Daniel P. Berrange)

### 0.7.4: Nov 20 2009

- Features:
  Implement a node device backend using libudev (David Allan),
  New APIs for checking some object properties (Daniel P. Berrange),
  Fully asynchronous monitor I/O processing (Daniel P. Berrange),
  add MAC address based port filtering to qemu (Gerhard Stenzel),
  Support for IPv6 / multiple addresses per interfaces (Laine Stump)
- Documentation:
  Document overriding domain interface target (Cole Robinson),
  514532 Fix man page, most operation are synchronous (Daniel Veillard),
  Fix typo in error message (Matthew Booth),
  esx: Add documentation to the website (Matthias Bolte),
  AppArmor updates of examples (Jamie Strandboge),
  Add documentation for <channel> domain element (Matthew Booth),
  Separate character device doc guest and host parts (Matthew Booth),
  Add a Python example that lists active ESX domains (Matthias Bolte),
  LXC fix wrong or out-of-date function descriptions (Ryota Ozaki),
  docs: <clock> property is 'offset', not 'sync' (Cole Robinson),
  Update the documentation for virDomainMigrateToURI (Chris Lalancette),
  fix virDomainMigrateToURI doc (Dan Kenigsberg)
- Bug fixes:
  504262 Check for duplicated UUID in XM Xen defines (Daniel Veillard),
  512069 fix domain XML schemas for backward compatibility (Daniel Veillard),
  qemu-kvm needs -enable-kvm flag for VT optimization (Steve Yarmie),
  fix deprecated iptables command syntax (Steve Yarmie),
  Ensure driver lock is released when entering QEMU monitor (Daniel P. Berrange),
  only remove masquerade roles for VIR_NETWORK_FORWARD_NAT (Guido Günther),
  esx: Fix CPU clock Hz to MHz conversion (Matthias Bolte),
  esx: Fix memory leak in esxVI_HostCpuIdInfo_Free() (Matthias Bolte),
  esx: Fix MAC address formatting (Matthias Bolte),
  Fix compilation of libvirt against xen-unstable (Jim Fehlig),
  Fix probing for libpciaccess (Daniel P. Berrange),
  Fix incorrect reference counting logic in qemu monitor open (Daniel P. Berrange),
  Don't return fatal error in HAL driver init if HAL isn't running (Daniel P. Berrange),
  Fix cleanup when state driver init fails (Daniel P. Berrange),
  AppArmor handling of accesses to readonly files (Jamie Strandboge),
  AppArmor require absolute paths (Jamie Strandboge),
  Check that domain is running when starting console (Daniel P. Berrange),
  Fix incorrect variable passed to LXC event callback (Daniel P. Berrange),
  Fix race condition in HAL driver startup (Daniel P. Berrange),
  Remove capng_lock() call when spawning LXC container init process (Daniel P. Berrange),
  Fix initscript to check daemon pidfile (Daniel P. Berrange),
  Filter out stale domains from xenstore listing (Daniel P. Berrange),
  Fix logic in xenUnifiedNumOfDomains to match xenUnifiedListDomains (Jonas Eriksson),
  Disable IPv6 socket auto-binding to IPv4 socket (Daniel P. Berrange),
  Fix save and restore with non-privileged guests and SELinux (Daniel P. Berrange),
  Prevent initializing ebtables if disabled in qemu.conf (Ryota Ozaki),
  phyp: too much timeout when polling socket (Eduardo Otubo),
  phyp: ssh authentication with public key fixed (Eduardo Otubo),
  opennebula: Fix potential memory/mutex leak in state driver startup (Matthias Bolte),
  phyp: Break potential infinite loops (Matthias Bolte),
  phyp: Fix memory/session leaks and potential invalid frees (Matthias Bolte),
  storage: conf: Fix memory leak in encryption parsing (Cole Robinson),
  Fix improper error return in virInterfaceDefParseProtoIPvX (Laine Stump),
  Fix virInterfaceIpDefPtr leak during virInterfaceIpDefFree (Laine Stump),
  give up python interpreter lock before calling cb (Dan Kenigsberg),
  ESX: Fix memory leak in list handling functions. (Matthias Bolte),
  Fix --with-init-script configure option (Matthew Booth),
  Don't let parent of daemon exit until basic initialization is done (Daniel P. Berrange),
  Fix configure detection of device mapper (Pritesh Kothari),
  Remote code caught EINTR making it ininterruptable (Daniel Veillard),
  virterror: Add a missing 'break' for VIR_ERR_INVALID_SECRET (Cole Robinson),
  Fix p2p migration without a passed uri. (Cole Robinson),
  Fix problems in the Xen inotify driver. (Matthias Bolte),
  Remove a completely bogus reference increment in the Xen driver. (Chris Lalancette),
  528575 avoid libvirtd crash on LCX domain autostart (Daniel Veillard),
  Fix SELinux linking issues (Jim Fehlig),
  node device: Fix locking issue in virNodeDeviceDestroy (Cole Robinson),
  LXC fix virCgroupGetValueStr problem with \n (Ryota Ozaki),
  Avoid crash in virBufferEscapeString (Laine Stump),
  LXC complement PATH environment variable (Ryota Ozaki)
- Improvements:
  Enable udev instead of hal on F12 / RHEL-6 or later (Daniel P. Berrange),
  python: Actually implement list*Interfaces bindings (Cole Robinson),
  esx: Handle 'vmxnet3' in esxVMX_FormatEthernet() (Matthias Bolte),
  Fix check for existance of cgroups at creation (Daniel P. Berrange),
  Fix virt-aa-helper when host and os.type arch differ (Jamie Strandboge),
  Add translation of PCI vendor and product IDs (David Allan),
  Add scsi_target device type (David Allan),
  Add several fields to node device capabilities (David Allan),
  Add virConnectGetLibvirtVersion API (Cole Robinson),
  Implement finer grained migration control for Xen (Maximilian Wilhelm),
  Support for SATA Disks in virDomainDiskBus (pritesh),
  LXC implement missing DomainInterfaceStats API (Ryota Ozaki),
  disable mac_filter config switch by default (Gerhard Stenzel),
  phyp: Reorder keyboard_interactive label in openSSHSession() (Eduardo Otubo),
  Implmentation of new APIs to checking state/persistence of objects (Daniel P. Berrange),
  Allow timeouts waiting for QEMU job lock (Daniel P. Berrange),
  Release driver and domain lock when running monitor commands (Daniel P. Berrange),
  Add reference counting on virDomainObjPtr objects (Daniel P. Berrange),
  Locking of the qemuMonitorPtr object (Daniel P. Berrange),
  Wrap text mode monitor APIs, pass qemuMonitorPtr directly to APIs (Daniel P. Berrange),
  Move encryption lookup back into qemu driver file (Daniel P. Berrange),
  Make use of private data structure for monitor state (Daniel P. Berrange),
  Add a new timed condition variable wait API (Daniel P. Berrange),
  Fix errno handling for pthreads wrappers (Daniel P. Berrange),
  524280 pass max lease option to dnsmasq (Daniel Veillard),
  Store the range size when adding a DHCP range (Daniel Veillard),
  qemu: Allow cpu pinning for all logical CPUs, not just physical (Cole Robinson),
  qemu: Use same create/define overwrite logic for migration prepare. (Cole Robinson),
  qemu: Break out function to check if we can create/define/restore (Cole Robinson),
  Add sentinel attribute for NULL terminated arg lists (Paolo Bonzini),
  test: Update inactive guest config on shutdown (Cole Robinson),
  test: Add testDomainShutdownState helper (Cole Robinson),
  Properly convert port numbers to/from network byte order (Matthew Booth),
  phyp add create() and destroy() support (Eduardo Otubo),
  Support for <channel> in domain and QEmu backend (Matthew Booth),
  Detect availability of QEMU -chardev CLI option (Matthew Booth),
  Allow character devices to have different target types (Matthew Booth),
  LXC allow container to have ethN interfaces (Ryota Ozaki),
  New ebtables module wrapper (Gerhard Stenzel),
  test: Implement virDomainPinVcpu (Cole Robinson),
  test: Implement virDomainGetVcpus (Cole Robinson),
  test: Update vcpu runtime info in SetVcpus (Cole Robinson),
  test: Use privateData to track running VM vcpu state (Cole Robinson),
  test: Break out wrapper for setting up started domain state. (Cole Robinson),
  test: Fixes for SetVcpus (Cole Robinson),
  Make monitor type (miimon/arpmon) optional in bond xml (Laine Stump),
  Support reporting live interface IP/netmask (Laine Stump),
  Make startmode optional in toplevel interface definition (Laine Stump),
  Move libvirtd event loop into background thread (Daniel P. Berrange),
  Allow NULL mac address in virGetInterface (Laine Stump),
  ESX: Don't automatically follow redirects. (Matthias Bolte),
  ESX: Change disk selection for datastore detection. (Matthias Bolte),
  ESX: Fallback to the preliminary name if the datastore cannot be found. (Matthias Bolte),
  Set KMEMSIZE for OpenVZ domains being defined (Yuji NISHIDA),
  Allow for a driver specific private data blob in virDomainObjPtr (Daniel P. Berrange),
  More network utility functions (Matthew Booth),
  Add symbols from new network.h module (Daniel Veillard),
  Set of new network related utilities (Daniel Veillard),
  Convert virDomainObjListPtr to use a hash of domain objects (Daniel P. Berrange),
  qemu: migrate: Don't require manual URI to specify a port (Cole Robinson),
  test: Support virStorageFindPoolSources (Cole Robinson),
  storage: Add ParseSourceString function for use with FindPoolSources. (Cole Robinson),
  Add support for an external TFTP boot server (Paolo Bonzini),
  test: Support virNodeDeviceCreate and virNodeDeviceDestroy (Cole Robinson),
  Consolidate virXPathNodeSet() (Daniel Veillard),
  Support QEMU watchdog device. (Richard Jones),
  Do not log rotate very small logs (Dan Kenigsberg),
  LXC implement missing macaddr assignment feature (Ryota Ozaki),
  tests: Initialize virRandom in for test suite. (Cole Robinson),
  tests: Add storage volume XML 2 XML tests. (Cole Robinson),
  tests: Add network XML to XML tests. (Cole Robinson),
  schema: Update network schema. (Cole Robinson),
  tests: Add XML 2 XML tests for storage pools. (Cole Robinson),
  tests: Break out duplicate schema verification functionality. (Cole Robinson),
  tests: Fix text output for interface XML 2 XML (Cole Robinson),
  Add ocfs2 to list of fs pool types (Jim Fehlig),
  Finer grained migration control (Chris Lalancette)
- Cleanups:
  remove sysfs_path and parent_sysfs_path from XML (Dave Allan),
  Removing devicePath member from dev struct (Dave Allan),
  report OOM in two places in node_device_driver.c (Dave Allan),
  Whitespace cleanup for pre-tags on the website (Matthias Bolte),
  Fix type in configure output summary (Daniel P. Berrange),
  Remove a compilation warning on uninitialized var (Daniel Veillard),
  Change DTD references to use public instead of system identifier (Matthias Bolte),
  Remove obsolete devicekit checks (Daniel P. Berrange),
  Small guestfwd code cleanup (Matthew Booth),
  Small indentation cleanup of domain schema (Matthew Booth),
  AppArmor code cleanups (Jamie Strandboge),
  Fix formatting of XML for an inactive guest (Daniel P. Berrange),
  Remove DevKit node device backend (David Allan),
  Exclude numactl on s390[x] (Daniel P. Berrange),
  Fix error handling in qemuMonitorOpen (Ryota Ozaki),
  Fix warning on make due to missing cast (int) (Ryota Ozaki),
  Various fixes following a code review part 2 (Daniel Veillard),
  Various fixes following a code review (Daniel Veillard),
  Move code for low level QEMU monitor interaction into separate file (Daniel P. Berrange),
  Make pciDeviceList struct opaque (Daniel P. Berrange),
  Add missing OOM error checks, reports and cleanups (Matthias Bolte),
  Removes the ebtablesSaveRules() function (Gerhard Stenzel),
  phyp: Use actual error code instead of 0 (Matthias Bolte),
  phyp: Don't use VIR_ALLOC if a stack variable is good enough (Matthias Bolte),
  phyp: Fix several UUID table related problems (Matthias Bolte),
  phyp: Check for exit_status < 0 before parsing the result (Matthias Bolte),
  phyp: memcpy/memmove/memset can't fail, so don't check for error (Matthias Bolte),
  phyp: Make generic domain listing functions return -1 in case of error (Matthias Bolte),
  Fix configure check for libssh2 (Matthias Bolte),
  Repair getIPv4Addr after the ntohl conversion (Daniel Veillard),
  Cleanup whitespace in docs (Matthew Booth),
  Use virBuffer when building QEMU char dev command line (Matthew Booth),
  Cleanup virBuffer usage in qemdBuildCommandLine (Matthew Booth),
  Fix some cut-and-paste error in migration code (Paolo Bonzini),
  Ensure guestfwd address is IPv4 and various cleanups (Matthew Booth),
  LXC cleanup deep indentation in lxcDomainSetAutostart (Ryota Ozaki),
  LXC messages cleanup and fix lxcError (Ryota Ozaki),
  qemu: Remove compiled out localhost migration support (Cole Robinson),
  Various error reporting fixes (Cole Robinson),
  Improve error reporting for virConnectGetHostname calls (Cole Robinson),
  Fix up NLS warnings. (Chris Lalancette),
  Remove redundant virFileDeletePID() call (Chris Lalancette),
  Fix return value in virStateInitialize impl for LXC (Daniel P. Berrange),
  ESX: Unify naming of VI API utility and convenience functions. (Matthias Bolte),
  Rename internal APis (Daniel P. Berrange),
  Pull signal setup code out into separate method (Daniel P. Berrange),
  Fix duplicating logging of errors in libvirtd (Daniel P. Berrange),
  Fix initialization order bugs (Daniel P. Berrange),
  Misc cleanup to network socket init (Daniel P. Berrange),
  Annotate many methods with ATTRIBUTE_RETURN_CHECK & fix problems (Daniel P. Berrange),
  Don't use private struct member names of in6_addr (Matthias Bolte),
  Fix typo in network.c function comments (Matthew Booth),
  libvirt-devel should only require libvirt-client (Mark McLoughlin),
  qemu: Fix an error message in GetVcpus (Cole Robinson),
  storage: Break out function to add pool source to a SourceList. (Cole Robinson),
  storage: Break out pool source parsing to a separate function. (Cole Robinson),
  Fix some typos in comments (Dan Kenigsberg),
  Fix error message in qemudLoadDriverConfig() (Matthias Bolte),
  Add a new syntax-check rule for gethostname. (Chris Lalancette),
  Various syntax-check fixes. (Chris Lalancette),
  Tighten up nonreentrant syntax-check. (Chris Lalancette),
  Replace a gethostname by virGetHostname in libvirtd.c (Chris Lalancette),
  Replace two strcmp() by STREQ() in qemu_driver.c (Chris Lalancette),
  Replace gethostname by virGetHostname in xend_internal.c (Chris Lalancette),
  Add a default log_level to qemudSetLogging to remove a build warning. (Chris Lalancette),
  Better error message when libvirtd fails to start. (Chris Lalancette),
  Fix potential false-positive OOM error reporting. (Matthias Bolte),
  Fix virsh.c compilation warning (Jim Fehlig),
  Fix a make dist error due to wrong EXTRA_DIST paths (Daniel Veillard),
  node device: Break out get_wwns and get_parent_node helpers (Cole Robinson),
  tests: Centralize VIR_TEST_DEBUG lookup, and document it (Cole Robinson),
  Remove bogus const annotations to hash iterator (Daniel P. Berrange),
  Remove bashisms from schema tests. (Matthias Bolte),
  Don't copy old machines from a domain which has none (Mark McLoughlin)

### 0.7.3: Nov 20 2009

Broken release use 0.7.4

### 0.7.2: Oct 14 2009

- Features:
  sVirt AppArmor security driver (Jamie Strandboge),
  Add public API definition for data stream handling (Daniel P. Berrange),
  ESX add esxDomainDefineXML() (Matthias Bolte),
  LXC: suspend/resume support (Ryota Ozaki),
  Big code tree cleanup (Daniel P. Berrange)
- Documentation:
  Documentation and examples for SVirt Apparmor driver (Jamie Strandboge),
  Fix documentation and comment typos (Paolo Bonzini),
  Fix up a few typos in the tree. (Chris Lalancette),
  Fix a typo in virNetHasValidPciAddr() too (Mark McLoughlin),
  Fix a typo in virDiskHasValidPciAddr() (Jiri Denemark),
  Fix a number of small typos (Dan Kenigsberg),
  add doc for graphic and video elements (Florian Vichot),
  Fix up 'neccessary -> necessary' in a comment. (Chris Lalancette),
  Fix up comments for domainXML{To,From}Native. (Chris Lalancette),
  Simple fix of a comment in qemuStringToArgvEnv. (Chris Lalancette),
  Add a README file to src/ explaining the directory structure (Daniel P. Berrange),
  doc: don't emit trailing blanks into generated and VC'd NEWS file (Jim Meyering)
- Portability:
  Misc win32 build fixes (Daniel P. Berrange),
  Don't require full daemon install for libvirt python bindings (Daniel P. Berrange),
  Tweak specfile to fix RHEL6 rules & ESX/PHYP enablement (Daniel P. Berrange),
  Bug Fixes:, network: Fix printing XML 'delay' attribute (Cole Robinson),
  Fix virFileReadLimFD/virFileReadAll to handle EINTR (Daniel P. Berrange),
  storage: Fix generating iscsi 'auth' xml (Cole Robinson),
  Fix QEMU restore from file in raw format (Daniel P. Berrange),
  Take domain type into account when looking up default machine (Mark McLoughlin),
  Fix schema to allow missing machine type (Mark McLoughlin),
  Fix stream abort upon I/O failure during migration (Daniel P. Berrange),
  Create /var/log/libvirt/{lxc,uml} dirs (Mark McLoughlin),
  nodedev: Add locking in nodeNumOfDevices (Cole Robinson),
  test: Throw a proper error in GetBridgeName (Cole Robinson),
  526769 change logrotate config default to weekly (Daniel Veillard),
  Fix emission of domain events messages (Daniel P. Berrange),
  unbreak `make rpcgen' (Paolo Bonzini),
  unbreak migration (Paolo Bonzini),
  Fix USB device re-labelling (Mark McLoughlin),
  Avoid a libvirtd crash on broken input 523418 (Daniel Veillard),
  Re-label image file backing stores (Mark McLoughlin),
  Fix memory leaks in libvirtd's message processing (Matthias Bolte),
  Fix QEMU test suite with new VNC env variable (Daniel P. Berrange),
  VBox vboxDomainDestroy forgot to wait for completion (Pritesh Kothari),
  Vbox call OpenHardDisk with "" instead of NULL (Pritesh Kothari),
  Avoid double free in errors in virsh (Jim Fehlig),
  Fix crash in device hotplug cleanup code (Daniel P. Berrange),
  Maintain value of ctxt->node in virInterfaceDefParseDhcp (Laine Stump),
  Fix some XPath relative node resets (Daniel Veillard),
  Fix unitialized variable in qemudDomainDetachHostPciDevice() (Charles Duffy),
  ESX: Check if a datastore is accessible first (Matthias Bolte),
  Fix handling of Xen(ner) detection (Daniel P. Berrange),
  Fix xen driver refcounting. (Matthias Bolte),
  prevent attempt to call cat -c during virDomainSave to raw (Charles Duffy),
  Don't do virSetConnError when virDrvSupportsFeature is successful. (Chris Lalancette),
  Fix a double-free in qemudRunLoop() (Chris Lalancette),
  Fix leak in PCI hostdev hot-unplug (Mark McLoughlin),
  Fix net/disk hot-unplug segfault (Mark McLoughlin)
- Improvements:
  schema: Update storage pool schema. (Cole Robinson),
  test: Activate interfaces specified through driver config file. (Cole Robinson),
  Rewrite example domain events programm for python (Daniel P. Berrange),
  Support a new peer-to-peer migration mode & public API (Daniel P. Berrange),
  LXC add augeas support for config file (Amy Griffis),
  LXC add driver config file lxc.conf (Amy Griffis),
  LXC do not truncate container log files on restart (Amy Griffis),
  LXC initialize logging configuration (Amy Griffis),
  Add debug for envp[] in virExecWithHook() (Amy Griffis),
  Add accessors for logging filters and outputs (Amy Griffis),
  Add virFileAbsPath() utility (Amy Griffis),
  LXC implement memory control APIs (Ryota Ozaki),
  Add a domain argument to SVirt *RestoreImageLabel (Jamie Strandboge),
  test: Support loading node device info from file/XML (Cole Robinson),
  test: Implement node device driver. (Cole Robinson),
  configure: Add explict --with-python option. (Cole Robinson),
  Tunnelled migration. (Chris Lalancette),
  Various monitor improvements for migration. (Chris Lalancette),
  523639 Allows a <description> tag for domains (Daniel Veillard),
  Add src/util/storage_file.c to the POTFILES.in. (Chris Lalancette),
  Add a qemu feature flag for unix socket migration. (Chris Lalancette),
  Let remoteClientStream only do RX if requested. (Chris Lalancette),
  Introduce virStorageFileMetadata structure (Mark McLoughlin),
  Allow control over QEMU audio backend (Daniel P. Berrange),
  Handle data streams in remote client (Daniel P. Berrange),
  Handle outgoing data streams in libvirtd (Daniel P. Berrange),
  Handle incoming data streams in libvirtd (Daniel P. Berrange),
  Lots of cleanups and improvement on QEmu monitor code (Daniel P. Berrange),
  ESX add esxVI_Occurence enum to for occurences (Matthias Bolte),
  ESX add x86_64 detection based on the CPUID (Matthias Bolte),
  ESX add tests for the VMX to/from domain XML mapping (Matthias Bolte),
  ESX Add esxDomainXMLToNative() (Matthias Bolte),
  ESX Set challenge for auth callback to hostname (Matthias Bolte),
  ESX Add esxNodeGetFreeMemory() (Matthias Bolte),
  network: add 'bootp' and 'tftp' config (Paolo Bonzini),
  OpenVZ Fix a restriction about domain names (Yuji NISHIDA),
  Make pki_check.sh into an installed & supported tool (Daniel P. Berrange),
  ESX add support for vmxnet3 virtual device (Shahar Klein)
- Cleanups:
  remote: Don't print a warning every time a remote call fails (Cole Robinson),
  storage: Report errors in FindPoolSources (Cole Robinson),
  LXC fix return code handling in lxcVmStart (Ryota Ozaki),
  Add a target for libvirt.devhelp (Daniel Veillard),
  Remove some auto-generated files (Daniel P. Berrange),
  Re-arrange doTunnelMigrate to simplify cleanup code (Daniel P. Berrange),
  Separate out code for sending tunnelled data (Daniel P. Berrange),
  Pull connection handling code out of doTunnelMigrate (Daniel P. Berrange),
  Refactor native QEMU migration code (Daniel P. Berrange),
  Don't force dconn to be NULL in virDomainMigrate (Daniel P. Berrange),
  Remove unnecessary uri_in parameter from virMigratePrepareTunnel (Daniel P. Berrange),
  Move the VIR_DRV_FEATURE* constants (Daniel P. Berrange),
  Fix configure.ac message vertical alignment (Daniel P. Berrange),
  cgroup: Fix -Werror breakage (Cole Robinson),
  Fix handling return value of qemuMonitorSetBalloon (Ryota Ozaki),
  Fix up "make check" (Chris Lalancette),
  Fix rebuilding of devhelp files (Daniel P. Berrange),
  Fix ordering of <exports> in API description file (Daniel P. Berrange),
  node conf: Make parsing routines consistent with other drivers (Cole Robinson),
  nodedev: Break out virNodeDeviceHasCap to node_conf (Cole Robinson),
  python: Add a newline after custom classes (Cole Robinson),
  python: Fix generated virInterface method names (Cole Robinson),
  python: Use a pure python implementation of 'vir*GetConnect' (Cole Robinson),
  python: Don't generate bindings for vir*Ref (Cole Robinson),
  python: Don't generate conflicting conn.createXML functions. (Cole Robinson),
  python: Remove use of xmllib in generator.py (Cole Robinson),
  python: Remove FastParser from generator. (Cole Robinson),
  Fix typo in Makefile.am breaking NEWS file generation (Daniel P. Berrange),
  Fix build in separate build directory (Jiri Denemark),
  Incorrect error message in virDomainNetDefParseXML (Florian Vichot),
  Fix a few 'make rpm' breakages (Daniel Veillard),
  Pass remote_message_header to the dispatch functions. (Chris Lalancette),
  Fix up some warnings from stream DEBUG statements. (Chris Lalancette),
  Fix apibuild.py warnings (Matthias Bolte),
  Change signature of remoteSendStreamData() to fix compile warning (Matthias Bolte),
  Add virStorageFileGetMetadata() helper (Mark McLoughlin),
  Move virStorageGetMetadataFromFD() to libvirt_util (Mark McLoughlin),
  Split virStorageGetMetadataFromFD() from virStorageBackendProbeTarget() (Mark McLoughlin),
  Move file format enum to libvirt_util (Mark McLoughlin),
  Remove hand-crafted UUID parsers (Daniel P. Berrange),
  Helper functions for processing data streams in libvirtd (Daniel P. Berrange),
  Standardize debugging messages in QEMU monitor code (Daniel P. Berrange),
  Remove low level monitor APIs from header file (Daniel P. Berrange),
  Rename qemudMonitorSendCont to qemuMonitorStartCPUs (Daniel P. Berrange),
  Pull QEMU monitor interaction out to separate file (Daniel P. Berrange),
  util.h needs libvirt.h for virConnectPtr (Mark McLoughlin),
  Fix API doc extractor to stop munging comment formatting (Daniel P. Berrange),
  Fix secret_driver compile warning, bug. (Charles Duffy),
  ESX remove phantom mode (Matthias Bolte),
  ESX replace esxUtil_EqualSuffix() with virFileHasSuffix() (Matthias Bolte),
  ESX Whitespace cleanup (Matthias Bolte),
  Fix up "make syntax-check" after the tree restructuring. (Chris Lalancette),
  Introduce virStrncpy. (Chris Lalancette),
  Ignore auto-generated header file (Daniel P. Berrange),
  Remove an unnecessary variable from remoteIOReadMessage(). (Chris Lalancette),
  Remove auto-generated header file from repo (Daniel P. Berrange),
  Move example XML files into examples/xml (Daniel P. Berrange),
  Remove all generated docs from source control (Daniel P. Berrange),
  Fix missing data file in qemuhelpdata (Daniel P. Berrange),
  Misc syntax-check fixes (Daniel P. Berrange),
  Move remote protocol definition into src/remote/ (Daniel P. Berrange),
  Move all shared utility files to src/util/ (Daniel P. Berrange),
  Move all XML configuration handling to src/conf/ (Daniel P. Berrange),
  Re-arrange python generator to make it clear what's auto-generated (Daniel P. Berrange),
  Remove obsolete files (Daniel P. Berrange),
  Move docs/examples into examples/ (Daniel P. Berrange),
  Remove unused images from docs/ directory (Daniel P. Berrange),
  Rename daemon main code (Daniel P. Berrange),
  Move config files to align with driver sources (Daniel P. Berrange),
  Move virsh into tools/ directory (Daniel P. Berrange),
  Move security drivers to src/security/ (Daniel P. Berrange),
  Move secret driver into src/secret/ (Daniel P. Berrange),
  Move netcf interface driver into src/interface/ (Daniel P. Berrange),
  Move network driver into src/network (Daniel P. Berrange),
  Move remote driver to src/remote/ (Daniel P. Berrange),
  Move test driver into src/test/ (Daniel P. Berrange),
  Move node device drivers to src/node_device/ (Daniel P. Berrange),
  Move storage drivers into src/storage/ (Daniel P. Berrange),
  Move OpenVZ driver to src/openvz/ (Daniel P. Berrange),
  Move UML driver to src/uml/ (Daniel P. Berrange),
  Move QEMU driver to src/qemu/ (Daniel P. Berrange),
  Move LXC driver into src/lxc/ (Daniel P. Berrange),
  Move xen driver code into src/xen/ directory (Daniel P. Berrange),
  Rename qemud/ directory to daemon/ (Daniel P. Berrange),
  Refactor libvirt.spec to allow client-only builds (Daniel P. Berrange)

### 0.7.1: Sep 15 2009

- New features:
  Add support for encrypted (qcow) volume creation. (Miloslav Trmač),
  Secret manipulation public API (Miloslav Trmač),
  Multipath storage support module (Dave Allan),
  VBox add Storage Volume support (Pritesh Kothari),
  Support configuration of huge pages in guests (Daniel P. Berrange),
  Support new PolicyKit 1.0 API (Daniel P. Berrange),
  Compressed save image format for Qemu (Chris Lalancette, Charles Duffy and Jim Meyering),
  QEmu add host PCI device hotplug support (Mark McLoughlin)
- Documentation:
  Minor comment changes (Laine Stump),
  Fix up virNodeGetCellsFreeMemory (Chris Lalancette),
  Fix some typos and remove unhelpful acronyms in QEMU docs (Daniel P. Berrange),
  Add documentation about the QEMU driver security features (Daniel P. Berrange),
  Remove 'the-the' typo in docs (Daniel P. Berrange),
  Fix some URLs in virsh manpage (Mark McLoughlin),
  Add link to AbiCloud web management system (Daniel P. Berrange),
  Update logging documentation (Amy Griffis)
- Portability:
  Fix win32 platform build (Daniel P. Berrange)
- Bug fixes:
  VBox bug when starting machine from old versions (Pritesh Kothari),
  ESX avoid potential leaks (Matthias Bolte),
  Fix more OOM handling bugs (Daniel P. Berrange),
  Fix logging buffer overrun read (Daniel P. Berrange),
  Fix misc thread locking bugs / bogus warnings (Daniel P. Berrange),
  Fix regression from "Avoid polling on FDs with no events" (Chris Lalancette),
  Close logfile fd after spawning qemu (Ryota Ozaki),
  Check for libssh2 >= 1.0 for phy driver (Maximilian Wilhelm),
  Avoid another leak in src/xend_internal.c (Matthias Bolte),
  Avoid a leak in xenDaemonLookupByID (Matthias Bolte),
  VBox fix minor bugs in display and added OOM checks (Pritesh Kothari),
  Some close/fclose/closedir calls are missing (Matthias Bolte),
  lxc_container.c: avoid a leak on error paths (Jim Meyering),
  Fix several memory leaks (Ryota Ozaki),
  Fix a memory leak in virsh (Laine Stump),
  Fix ID field in virDomainPtr after starting Xen VM (Daniel P. Berrange),
  Fix memory leak of monitor character device (Daniel P. Berrange),
  Automatically set correct ownership of QEMU state directories (Daniel P. Berrange),
  Avoid polling on FDs with no events enabled (Daniel P. Berrange),
  esx_vi: return -1 upon failure, as intended (Matthias Bolte),
  python: let libvirt_virConnectDomainEventCallback indicate success (Jim Meyering),
  uml_conf.c: don't return an uninitialized pointer (Jim Meyering),
  storage_backend.c: assure clang that inputvol can't be NULL (Jim Meyering),
  libvir.c: avoid NULL dereference in virStoragePoolSetAutostart (Jim Meyering),
  lxc: avoid NULL dereference upon getmntent failure (Jim Meyering),
  storage_backend_fs: avoid NULL dereference on opendir failure (Jim Meyering),
  Fix bugs in virDomainMigrate v2 code. (Chris Lalancette),
  VMware ESX: Don't warn on some query parameter (Matthias Bolte),
  Don't blindly reorder disk drives (Daniel P. Berrange),
  Fix sexpr2string() to handle empty list. (Jim Fehlig),
  Fix driver entry table for UML numa APIs (Daniel P. Berrange),
  Fix crash in virsh vol-key command (Pritesh Kothari),
  517157 fix selinux problem with images on NFS (Darryl L. Pierce),
  Fix phypOpen() escape_specialcharacters (Mattias Bolte),
  Power Hypervisor: fix potential segfault (Mattias Bolte),
  Fix bridge/tap system error reporting (Mark McLoughlin),
  Reset PCI host devices after hot-unplug (Mark McLoughlin),
  Reset unmanaged PCI host devices before hotplug (Mark McLoughlin),
  Fix up connection reference counting. (Chris Lalancette),
  Fix LXC driver crash when kernel doesn't support clone (Daniel P. Berrange),
  Make LXC / UML drivers robust against NUMA topology brokenness (Daniel P. Berrange),
  Run 'cont' on successful migration finish. (Chris Lalancette),
  Fix QEMU domain status after restore. (Chris Lalancette),
  Handle kernels with no ipv6 support (Mark McLoughlin),
  Set perms on /var/lib/libvirt/boot to 0711 (Mark McLoughlin),
  chown kernel/initrd before spawning qemu (Mark McLoughlin),
  Several fixes to libvirtd's log setup (Amy Griffis),
  Fix memleak if esxOpen fails (Matthias Bolte)
- Improvement:
  support lzop save compression for qemu (Charles Duffy),
  VBox 3.0.6 API change support (Pritesh Kothari),
  Add UUID definition required by storage encryption import (Daniel P. Berrange),
  Make secrets RNG more strict (Daniel P. Berrange),
  Fill in secret UUID for qcow encryption (Daniel P. Berrange),
  Add usage type/id as a public API property of virSecret (Daniel P. Berrange),
  Fix UUID handling in secrets/storage encryption APIs (Daniel P. Berrange),
  Save vcpuinfo in status file (Daniel P. Berrange),
  Restart libvirtd upon RPM upgrade (Daniel P. Berrange),
  Add support for qcow encrypted volumes to qemu. (Miloslav Trmač),
  Provide missing passphrase when creating a volume. (Miloslav Trmač),
  Add virsh commands for secrets APIs (Miloslav Trmač),
  Local file implementation of secret driver API (Miloslav Trmač),
  Mask out flags used internally for virSecretGetValue (Miloslav Trmač),
  Add <usage> to <secret> docs (Miloslav Trmač),
  also allow use of XZ for Qemu image compression (Jim Meyering),
  Support relabelling of USB and PCI devices (Daniel P. Berrange),
  Add helper APIs for iterating over PCI device resource files (Daniel P. Berrange),
  Add helper module for dealing with USB host devices (Daniel P. Berrange),
  Test that domain-specific qemu machine types are used correctly (Mark McLoughlin),
  Probe machine types from kvm binary too (Mark McLoughlin),
  Look up machine types from all domains in qemudGetOldMachines() (Mark McLoughlin),
  Test qemu machine aliases (Mark McLoughlin),
  Add qemu -help test data for qemu-kvm-0.11.0-rc2 (Mark McLoughlin),
  Add a more featureful qemu capabilities test data (Mark McLoughlin),
  Add arm arch to capabilities schema (Mark McLoughlin),
  Update capabilities schema to allow multiple machines per domain (Mark McLoughlin),
  Add esx and tcp migration uri transports to capabilities schema (Mark McLoughlin),
  Reintroduce support for lzop compression (Charles Duffy),
  build: update gnulib submodule to latest (Jim Meyering),
  Add flags and requires for Multipath storage (Daniel Veillard),
  ESX raise error if UUID parse failed (Matthias Bolte),
  ESX add domain undefine based on esxVI_UnregisterVM (Matthias Bolte),
  ESX add esxGetCapabilities() with basic defaults (Matthias Bolte),
  Switch Power Hypervisor to libssh2 (Eduardo Otubo),
  Allow libvirtd to RPC to external libvirtd (Chris Lalancette),
  Add support for setting disk drive serial numbers (Daniel P. Berrange),
  VBox support for defining/dumping video devices (Pritesh Kothari),
  Generic parsing support for video acceleration (Pritesh Kothari),
  VMware ESX: Allow ethernet address type 'vpx' (Matthias Bolte),
  Support for getting/setting number of cpus in VBox (Pritesh Kothari),
  Make handling of monitor prompts more general. (Miloslav Trmač),
  Attach encryption information to virDomainDiskDef. (Miloslav Trmač),
  Recognize encryption format of qcow volumes. (Miloslav Trmač),
  Attach encryption information to virStorageVolDef. (Miloslav Trmač),
  Add volume encryption information handling. (Miloslav Trmač),
  Secret manipulation API docs refresh and wire up python generator (Miloslav Trmač),
  Secret manipulation remote client (Miloslav Trmač),
  Secret manipulation libvirtd wire protocol and remote dispatcher (Miloslav Trmač),
  Secret manipulation public API implementation (Miloslav Trmač),
  Secret manipulation internal API (Miloslav Trmač),
  Add test for recently fixed crash with latest XenD (Daniel P. Berrange),
  Don't expose 'vnet%d' to the user (Mark McLoughlin),
  Maintain a list of active PCI hostdevs and use it in pciResetDevice() (Mark McLoughlin),
  Simplify PCI hostdev prepare/re-attach using a pciDeviceList type (Mark McLoughlin),
  Use pci_addr=auto with QEMU's pci_add monitor command (Mark McLoughlin),
  Check active domain hostdevs before allowing PCI reset (Mark McLoughlin),
  Allow pciResetDevice() to reset multiple devices (Mark McLoughlin),
  Improve PCI host device reset error message (Mark McLoughlin),
  Reset and re-attach PCI host devices on guest shutdown (Mark McLoughlin),
  Allow PM reset on multi-function PCI devices (Mark McLoughlin),
  Detect KVM's PCI device assignment support (Mark McLoughlin),
  Split virDomainMigrate into functions. (Chris Lalancette),
  Consolidate code for parsing the logging env (Amy Griffis)
- Cleanups:
  Remove accidentally added UUID re-definition in storage schema (Daniel P. Berrange),
  ESX cleanup of CPU model strings (Matthias Bolte),
  Fix use of dlopen modules (Daniel P. Berrange),
  Consolidate "cont" into qemudMonitorSendCont() (Miloslav Trmač),
  Cleanup sec driver error reporting to use virReportSystemError (Daniel P. Berrange),
  Port QEMU driver to use USB/PCI device helpers (Daniel P. Berrange),
  Simplify and fix qemudCanonicalizeMachine() (Mark McLoughlin),
  Split up qemudGetOldMachines() (Mark McLoughlin),
  Re-factor qemu test machine allocation code (Mark McLoughlin),
  Canonicalize the qemu machine type in qemuxml2argvtest (Mark McLoughlin),
  Dump qemu driver capabilities if test debugging enabled (Mark McLoughlin),
  Fix formatting of machine types in capabilities XML (Mark McLoughlin),
  qemu_driver.c: factor out more duplication (Jim Meyering),
  Deprecate lzma and lzop in favor of xz, add dep (Daniel Veillard),
  qemu_driver.c: factor out duplication in compression-type handling (Jim Meyering),
  openvz_conf.c: remove dead store to "p"; use strchrnul (Jim Meyering),
  Remove some tabs used for indent (Daniel Veillard),
  Updated a number of localizations and regenerated (Daniel Veillard),
  Add a missing comment (Miloslav Trmač),
  Fix a pasto in storage_encryption_conf.c (Miloslav Trmač),
  xm_internal.c: remove four useless comparisons after strchr (Jim Meyering),
  xm_internal.c: remove dead increment of "data" (Jim Meyering),
  network_driver.c: remove dead store to "err" (Jim Meyering),
  iptables.c: remove dead store to "s" (Jim Meyering),
  util.c: avoid dead store to "flag" (Jim Meyering),
  domain_conf.c: remove two dead stores (Jim Meyering),
  xm_internal.c: remove two ret=... dead stores (Jim Meyering),
  xm_internal.c: remove dead stores of local, "type" (Jim Meyering),
  network_conf.c: remove dead store to "err" (Jim Meyering),
  openvz_driver.c: avoid dead store to "err" (Jim Meyering),
  xend_internal.c: Remove two dead stores to "ret" (Jim Meyering),
  storage_driver.c: remove two dead stores to "backend" (Jim Meyering),
  qemu_conf.c: add a comment suggesting why we leave a dead-store (Jim Meyering),
  hash.c: remove a dead store (Jim Meyering),
  interface_conf.c: remove a dead-store and declaration (Jim Meyering),
  eventtest.c: detect write failure and avoid dead stores (Jim Meyering),
  openvz_conf.c: Remove dead store to copy_fd (Jim Meyering),
  storage_backend_logical.c: appease clang: remove useless increment (Jim Meyering),
  ESX simplify SOAP request and response handling (Matthias Bolte),
  ESX use virXPathNode*() to simplify XPath handling (Matthias Bolte),
  ESX: make esxVI_GetVirtualMachineIdentity() robust (Matthias Bolte),
  ESX: Fix VMX path parsing and URL encoding (Matthias Bolte),
  VBox driver cleanups (Pritesh Kothari),
  PHYP driver cleanups (Daniel Veillard),
  Move QEMU monitor socket in /var/lib/libvirt/qemu (Daniel P. Berrange),
  xen_internal.c: remove two unused local variables (Jim Meyering),
  mdns.c: remove dead initialization (Jim Meyering),
  node_device_conf.c: remove dead initialization (Jim Meyering),
  openvz_conf.c: don't use undefined local, "net" (Jim Meyering),
  test.c: don't use undefined local, "def" (Jim Meyering),
  remote_internal.c: appease clang (Jim Meyering),
  infra: define ATTRIBUTE_NONNULL to mark non-NULL parameters (Jim Meyering),
  lxc: don't unlink(NULL) in main (Jim Meyering),
  storage_conf.c: avoid overflow upon use of "z" or "Z" (zebi) suffix (Jim Meyering),
  VBox cleanup and update of networking shutdown (Pritesh Kothari),
  Box cleanup and update of networking XML functions (Pritesh Kothari),
  Fix misc OOM bugs (Daniel P. Berrange),
  Misc fixes to secrets API code (Daniel P. Berrange),
  Only add glusterfs dep for Fedora >= 11 (Daniel P. Berrange),
  Remove redundant base64 include file (Daniel P. Berrange),
  Don't assume buffered output echoes the command. (Miloslav Trmač),
  Update chinese, polish and spanish localizations (Daniel Veillard),
  OpenVZ: accept NULL as type for GetMaxVCPUs. (Chris Lalancette),
  Remove use of strncpy in qemudExtractMonitorPath. (Chris Lalancette),
  Refactor policycode auth code to avoid compiler warnings (Daniel P. Berrange),
  spec file: add URL to Source tag (Mark McLoughlin),
  Small fixes for qemu save compression. (Chris Lalancette),
  Fix thinko in PCI hostdev detach (Mark McLoughlin),
  Revert changes to allow pciResetDevice() reset multiple devices (Mark McLoughlin),
  Fix list updating after disk/network/hostdev hot-unplug (Mark McLoughlin),
  Re-name remote_internal.c:driver to remote_driver (Mark McLoughlin),
  Cosmetic change to 'virsh nodedev-list --tree' output (Mark McLoughlin),
  Re-factor hostdev hotplug (Mark McLoughlin),
  Remove a duplicated assignment in Xen PCI parsing. (Chris Lalancette),
  Fix up a few minor indentation issues. (Chris Lalancette),
  Fix phyp escape_specialcharacters. (Chris Lalancette),
  Make openvzGetVPSUUID take a len. (Chris Lalancette),
  Minor cleanup of error path for c_oneVmInfo. (Chris Lalancette),
  Fix up a whitespace in comments in src/console.c (Chris Lalancette),
  Fix up a stray whitespace in virHashGrow. (Chris Lalancette),
  Remove unsafe strncpy from esx_vmx.c (Chris Lalancette),
  Cleanup VIR_LOG_DEBUG parsing in eventtest (Amy Griffis),
  Tighten libvirt's parsing of logging env (Amy Griffis),
  Cleanup structure name naming (Matthias Bolte),
  Add proper OOM reporting for esxDomainGetOSType (Matthias Bolte)

### 0.7.0: Aug 5 2009

- New features: Interface implementation based on netcf (Laine Stump, Daniel Veillard), Add new net filesystem glusterfs (Harshavardhana), Initial VMWare ESX driver (Matthias Bolte), Add support for VBox 3 and event callbacks on vbox (Pritesh Kothari), First version of the Power Hypervisor driver (Eduardo Otubo), Run QEMU guests as an unprivileged user (Daniel P. Berrange), Support cgroups in QEMU driver (Daniel P. Berrange), QEmu hotplug NIC support (Mark McLoughlin), Storage cloning for LVM and Disk backends(Cole Robinson), Switching to GIT (Jim Meyering)
- Documentation: Typo and comment fixes (Aron Griffis), Fix virCapabilitiesDefaultGuestMachine documentation. (Chris Lalancette), ESX Scheduler documentation and cleanup (Matthias Bolte), Update the java bindings page (Bryan Kearney), Added Matthias Bolte to AUTHORS list (Daniel Veillard), doc: clone+build instructions (Jim Meyering), docs: say that the old repository is deprecated... (Jim Meyering), document tcp listen and raw wire option (Guido Günther), Fix docs and code disagreements for character devices. (Cole Robinson), Fix documentation of virStoragePoolUndefine return (Thomas Treutner), Fix gitweb link on download page. (Cole Robinson), update download informations after switch to git (Daniel Veillard), Update links to bugzilla (Garry Dolley), Update the links for RHEL libvirt bugzillas (Garry Dolley)
- Portability: Xen Inotify support needs sys/inotify.h (Maximilian Wilhelm), Workaround for broken GCC in Debian Etch (Maximilian Wilhelm), LXC driver requires sched.h and unshare() (Maximilian Wilhelm), Configure UML support only if sys/inotify.h present (Maximilian Wilhelm), Fix libcurl automatic check and ESX status (Maximilian Wilhelm), Enable ESX driver build on Mingw32 (Daniel P. Berrange), Fix build on mingw32 by disabling netcf (Daniel P. Berrange), Reduce glusterfs dependency to 2.0.1 (Mark McLoughlin), Desactivate phyp build and indicate libssh builreq (Daniel Veillard), Fix misc Win32 compile warnings (Daniel P. Berrange), Rename variable for compilation in Mingw32 (end) (Laine Stump), Rename variable for compilation in Mingw32 (Laine Stump), rpm spec cleanup and split off client only package (Daniel Veillard)
- Bug fixes: Add uniqueness checking for LXC define/create methods (Daniel P. Berrange), Fix removal of transient VMs when LXC aborts (Daniel P. Berrange), Don't try to activate cgroups if not present for LXC (Daniel P. Berrange), Refresh /etc/xen if inotify wasn't (Cole Robinson), Don't loose id on xen domain redefine (Cole Robinson), Fix memory leak in openvz driver (Daniel P. Berrange), Protected against potential crash scenarios (Daniel P. Berrange), Fix crash when attempting to shutdown inactive QEMU vm (Daniel P. Berrange), Fix PCIe FLR detection (Mark McLoughlin), Set perms on /var/lib/libvirt/images to 0711 (Mark McLoughlin), Fix problem writing QEMU pidfile (Daniel P. Berrange), Fix vcpupin on Xen problem (Henrik Persson), Fix RPM upgrades from F11 to F12 (Daniel P. Berrange), Fix deadlock in remote driver domain events (Daniel P. Berrange), qemu: fix monitor socket reconnection (Ryota Ozaki), Fix polkit/netcf disabling on older fedoras (Mark McLoughlin), Fix crashes in Xen capabilities code (Daniel P. Berrange), Always add -no-kvm and -no-kqemu, for qemu domains (Jim Paris), Avoid raising an internal error (Paolo Bonzini), Don't allow NULL paths for BlockStats and InterfaceStats (Cole Robinson), Don't leak vm-monitorpath on re-connect (Mark McLoughlin), Don't restore labels on shared/readonly disks (Daniel P. Berrange), Ensure spawned children have a stderr/out set to /dev/null if requested (Daniel P. Berrange), Ensure test:/// URIs get routed to the non-privileged libvirtd (Daniel P. Berrange), fix another failing "make distcheck" (qemuhelptest) (Jim Meyering), Fix an uninitialized variable in Unix socket open (Jun Koi), Fix configure flags in spec file (Daniel Veillard), Fix error reporting for security driver over remote protocol (Daniel P. Berrange), fix failing "make distcheck" (Jim Meyering), Fix free of unitialized data upon PCI open fail (Daniel P. Berrange), Fix informations about previous git server (Daniel Veillard), Fix memory leaks in esxDomainDumpXML (Matthias Bolte), Fix multiple memory leaks in virsh (Laine Stump), Fix PCI device hotplug/unplug with newer QEMU (Daniel P. Berrange), Fix problem with QEMU monitor welcome prompt confusing libvirt after a libvirtd daemon restart with active guests (Daniel P. Berrange), Fix python examples to use read-write conn (Dan Kenigsberg), Fix reconnect bug for VBox (Pritesh Kothari), Fix SELinux denial during hotplug (Daniel P. Berrange), Fix typo in check for glusterfs format pools (Daniel P. Berrange), Fix typo in storage cloning (Daniel P. Berrange), qemu: Check driver is initialized up front, to avoid segfault. (Cole Robinson), qemu: Try multiple times to open unix monitor socket (Cole Robinson), Release conn lock before reporting errors (end) (Laine Stump), Release conn lock before reporting interface errors (Laine Stump), Remove the network backend if NIC hotplug fails (Mark McLoughlin), Set specific flags for glusterfs fs mounts (Harshavardhana), storage: disk: Default to 'ext2' for new volumes. (Cole Robinson), storage: disk: Fix parthelper '-g' option handling. (Cole Robinson), storage: disk: Fix segfault creating volume without target path (Cole Robinson), storage: Fix deadlock when cloning across pools. (Cole Robinson), Update modified mac address in place in virGetInterface (Laine Stump)
- Improvements: Add an allocation unit when calling qemu-img (Ryota Ozaki), Improve diagnostics when pidfile writing fails (Daniel P. Berrange), Disable IPv6 on virtual networks (Daniel P. Berrange), Allow dnsmasq to provide DNS without DHCP (Daniel P. Berrange), Fix an initialization problem in previous patch (Aron Griffis), Remove MAX_TAP_ID and let kernel do numbering (Aron Griffis), Kernel command line support for UML (Ron Yorston), Activate the interface drivers, and cleanups (Daniel Veillard), Add an error code for conflicting mac addresses (Laine Stump), Add a test interface driver (Laine Stump), Add canonical machine name to capabilities output (Mark McLoughlin), add cd and pwd commands to virsh (Paolo Bonzini), Add checks for some NIC hotplug related features added in qemu-0.10.0 (Mark McLoughlin), Add domain autostart for LXC driver (Daniel P. Berrange), Add domain events support to LXC driver (Daniel P. Berrange), Add interface object list manipulation functions (Laine Stump), Add internal XML parsing/formatting flag (Mark McLoughlin), Add netcf XML schemas and test data (Daniel Veillard), Add new net filesystem glusterfs (Harshavardhana), Add NIC and hostnet names to domain state XML (Mark McLoughlin), Add no_verify query parameter to ESX URIs (Matthias Bolte), Add SCM_RIGHTS support to QEMU monitor code (Mark McLoughlin), Add support for attaching network/bridge NICs in QEMU driver (Mark McLoughlin), add support for netcf XML import and export (Daniel Veillard), Add support for network device detach (Mark McLoughlin), Add support for physical memory access for QEmu (Nguyen Anh Quynh), Add support for VBox 3 and event callbacks on vbox (Pritesh Kothari), Add the monitor type to the domain state XML (Mark McLoughlin), Add virCapsGuestMachine structure (Mark McLoughlin), Add virsh commands for network interface management (Laine Stump), Allow autostart of libvirtd to be disabled with LIBVIRT_AUTOSTART=0 (Daniel P. Berrange), Allow leading dots in VMX config entry names (Matthias Bolte), Assign names to qemu NICs and network backends (Mark McLoughlin), Basic qemu NIC hotplug support (Mark McLoughlin), build: adjust aclocal's search patch to prefer gnulib's m4 files. (Jim Meyering), build: automatically rerun ./bootstrap when needed (Jim Meyering), build: make autogen.sh use autoreconf -if (Jim Meyering), build: submodule machinery now works also when no tag is reachable (Jim Meyering), Canonicalize qemu machine types (Mark McLoughlin), Change code generator to give async event messages their own postfix (Daniel P. Berrange), Change the way client event loop watches are managed (Daniel P. Berrange), Decode incoming request header before invoking dispatch code (Daniel P. Berrange), Define an API for registering incoming message dispatch filters (Daniel P. Berrange), ESX driver accept VI API version 4.0 (Matthias Bolte), Fill in vCPU - pCPU current mapping, and vCPU cpuTime for QEMU (Daniel P. Berrange), generate ChangeLog from git logs into distribution tarball (Jim Meyering), Implement qemu dump capabilities (Paolo Bonzini), Implement schedular tunables API using cgroups (Daniel P. Berrange), Implement the new virinterface functions (Laine Stump), Make cgroups a little more efficient (Daniel P. Berrange), Make it easier to debug tests running programs (Daniel P. Berrange), Make qemuBuildHostNetStr() take tapfd as a string (Mark McLoughlin), Make QEMU cgroups use configurable (Daniel P. Berrange), Make qemuCmdFlags available in qemudDomainAttachDevice() (Mark McLoughlin), Move queuing of RPC replies into dispatch code (Daniel P. Berrange), Move vnet_hdr logic into qemudNetworkIfaceConnect() and export it (Mark McLoughlin), Netcf based interface driver implementation (Laine Stump), netcf XML validation and input and output tests (Daniel Veillard), Only probe qemu for machine types when binary changes (Mark McLoughlin), Place every QEMU guest in a private cgroup (Daniel P. Berrange), Probe for QEMU machine types (Mark McLoughlin), Probe QEMU directly for machine aliases if not found in capabilties (Mark McLoughlin), Public API for new virInterface functions (Laine Stump), python: Raise exceptions if virDomain*Stats fail. (Cole Robinson), Refactor cgroups to allow a group per driver to be managed directly (Daniel P. Berrange), Re-factor pci_add reply parsing and parse domain/bus numbers (Mark McLoughlin), Retain disk PCI address across libvirtd restarts (Mark McLoughlin), Retain PCI address from NIC attach (Mark McLoughlin), Run QEMU guests as an unprivileged user (Daniel P. Berrange), Separate code for encoding outgoing remote message headers (Daniel P. Berrange), Split generic RPC message dispatch code out from remote protocol API handlers (Daniel P. Berrange), Split out code for handling incoming method call messages (Daniel P. Berrange), storage: Break out actual raw cloning to separate function. (Cole Robinson), storage: cleanup: do away with 'createFile' (Cole Robinson), storage: disk: Use capacity, not allocation, when creating volume. (Cole Robinson), storage: Don't try sparse detection if writing to block device. (Cole Robinson), storage: Implement 'CreateBlockFrom' helper. (Cole Robinson), storage: Implement CreateVolFrom for logical and disk backend. (Cole Robinson), storage: Move most of the FS creation functions to common backend. (Cole Robinson), storage: Refactor FS backend 'create' function choosing. (Cole Robinson), Store the interface vlan number in the domain state (Mark McLoughlin), Support video element for QEMU guests (Daniel P. Berrange), Support video tag for defining VGA card properties (Daniel P. Berrange), Switch to using a unix socket for the qemu monitor (Mark McLoughlin), test: Generate net interface names when assigning XML. (Cole Robinson), test: Implement BlockStats and InterfaceStats (Cole Robinson), Use cgroups for block device whitelisting in QEMU guests (Daniel P. Berrange), Use enums for cgroup controller types / labels (Daniel P. Berrange), Use sendmsg() on QEMU monitor socket (Mark McLoughlin), Use virDomainChrTypeFromString() instead of open coding (Mark McLoughlin), Use virFileReadAll/virFileWriteStr for key cgroup read/write helpers (Daniel P. Berrange), virGetinterface matching of MAC and interface name (Laine Stump)
- Cleanups: Fix configure checks from previous commits (Daniel P. Berrange), Avoid a warning if compiling without inotify (Daniel P. Berrange), Remove a stray semicolon (Daniel Veillard), Extend the ESX URL to habdle ports and GSX (Matthias Bolte), Fix escaping of 8-bit high characters (Daniel P. Berrange), , Remove ATTRIBUTE_UNUSED from flags to qemudDomainMigratePerform. (Chris Lalancette), Add a comment about setting errors after qemudStartVMDaemon(). (Chris Lalancette), Fix an erroneous debug error to KVM; it should read QEMU/KVM. (Chris Lalancette), Remove a stray semicolon in qemudDomainMigratePrepare2. (Chris Lalancette), Convert a few stray users of free() in libvirt.c to VIR_FREE(). (Chris Lalancette), Use virGetHostname instead of gethostname. (Chris Lalancette), Fix up a minor indentation issue with virDomainMigratePrepare. (Chris Lalancette), Fix up a silly typo in apibuild.py. (Chris Lalancette), Avoid warning when compiling without IFF_VNET_HDR (Maximilian Wilhelm), Capilize libvirt-client summary (Mark McLoughlin), Move ldconfig calls to libvirt-client %post/%postun (Mark McLoughlin), Convert NEWS to UTF-8 (Mark McLoughlin), Fix trailing whitespace in NEWS (Mark McLoughlin), No need to build require both python-devel and python (Mark McLoughlin), Remove executable perms from /etc/sysconfig/libvirtd (Mark McLoughlin), Use a %postun -p for one line scriptlet (Mark McLoughlin), Don't explicitly require libxml2 (Mark McLoughlin), Fix some unowned directories (Mark McLoughlin), Kill qemu BuildRequires (Mark McLoughlin), Enable netcf by default (Mark McLoughlin), Default to with_polkit (Mark McLoughlin), Make vbox support configurable (Mark McLoughlin), Build with --without-capng if capng is disabled (Mark McLoughlin), BuildRequires libcap-ng-devel not capng-devel (Mark McLoughlin), Drop curl host check when using ESX without check (Shahar Klein), Fix typo in xen capabilities code (Daniel P. Berrange), Add bare format string to printf-derivatives troubles (Laine Stump), Add phyp files to POTFILES, to make syntax-check happy. (Cole Robinson), avoid a make distcheck failure: distribute docs/schemas/interface.rng (Jim Meyering), avoid a make distcheck failure: distribute tests/interfaceschemadata/ (Jim Meyering), avoid a "make syntax-check" failure (Jim Meyering), build: do not emit a trailing blank line into VC'd file, NEWS (Jim Meyering), build: update from gnulib, for latest maint.mk (Jim Meyering), Clean up error handling in qemudDomainAttachNetDevice() (Mark McLoughlin), Cleanup qemu binary detection logic in qemudCapsInitGuest() (Mark McLoughlin), Commit newly generated docs, after changes from commit 2348cf. (Cole Robinson), Factor qemuBuildHostNetStr() out from qemuBuildCommandLine() (Mark McLoughlin), Factor qemuBuildNicStr() out from qemuBuildCommandLine() (Mark McLoughlin), Factor qemudMonitorSend() out of qemudMonitorCommandExtra() (Mark McLoughlin), Fix cgroup compile warnings (Daniel P. Berrange), Fix misc build problems due to new drivers (Daniel P. Berrange), Fix wierd build problems due to autopoint overwriting gnulib m4 (Daniel P. Berrange), Makefile.cfg: Rename to... (Jim Meyering), make .gnulib a submodule (Jim Meyering), make "make syntax-check" consistent with "git diff --check" (Jim Meyering), Minor qemu monitor coding style fixes (Mark McLoughlin), Prepare to use maint.mk from gnulib (Jim Meyering), Refactor incoming message handling to prepare for data stream support (Daniel P. Berrange), Refactor message sending to allow code reuse for data streams (Daniel P. Berrange), remove all .cvsignore files (Jim Meyering), remove all trailing blank lines (Jim Meyering), Remove some unused variables and cut long lines (Daniel Veillard), Remove trailing blank lines (Daniel Veillard), Rename a bunch of internal methods to clarify their meaning (Daniel P. Berrange), Rename 'direction' to 'type' in remote_message_header (Daniel P. Berrange), Report the object name on lookup error (Daniel Veillard), Simplify remote driver error reporting (Daniel P. Berrange), skip some of gnulib's new rules (Jim Meyering), use automake-1.11's silent-rules option, when possible (Jim Meyering), use gnumakefile and maintainer-makefile modules from gnulib (Jim Meyering)

### 0.6.5: Jul 3 2009

- New features: create storage columes on disk backend (Henrik Persson), drop of capabilities based on libcap-ng when possible (Daniel Berrange)
- Portability: fix build on non-Linux targets (Daniel Berrange)
- Documentation: typo and english fixes (Runa Bhattacharjee and Garry Dolley), Docs on extending APIs (Dave Allan), cleanup of debug and logging documentation (Amy Griffis), add HACKING doc to the website (Daniel Berrange), documentation for OpenNebula driver (Abel Miguez Rodriguez)
- Bug fixes: forbid autostart on transcient networks, xen device removal crash (Daniel Berrange), re-detection of transient VMs after libvirtd restart(Daniel Berrange), bug in virFindFileInPath (Daniel Berrange), handle new availheap sysctl in Xen (Daniel Berrange), allow USB hostdev product 0 (Cole Robinson), cleanup when creating a storage pool fails (Henrik Persson), domain id fix on redefinition in test driver (Cole Robinson), fix raw storage allocation (Cole Robinson), memory reporting for inactive qemu drivers (Cole Robinson), segfault if storage pool has no type attribute (Cole Robinson), OpenNebula compilation issues (Javier Fontan), dominfo command without security driver (Daniel Berrange), domain state problems after migration or destroy (Federico Simoncelli), leak in node device parsing (Dave Allan), storage pool definitions reading at startup (Cole Robinson), bogus WWN in NPIV support (David Allan), avoid a segfault with recent Xen (Sascha), cope with libnuma failures on weird topologies (Dan Berrange), crash in QEMU driver with bad capabilities data (Dan Berrange), trying to re-create a pool should not destroy it (Dave Allan), endless loop in node device XML dump (Cole Robinson), Re-label shared and readonly images (Dan Berrange)
- Improvements: create and destroy NPIV support (David Allan), networking in UML driver (Daniel Berrange), HAL driver restart thread safety (Daniel Berrange), capabilities and nodeinfo APIs for LXC (Daniel Berrange), iNUMA API for VBox (Daniel Berrange), dynamically search and use kvm-img qemu-img or qcow-create (Doug Goldstein), fix qemu and kvm version parsing (Mark McLoughlin), serial number for HAL storage (Dave Allan), improve error reporting for virConnectOpen URIs (Daniel Berrange), include OS driver name in device XML (Daniel Berrange), fix qemu command flags fetching (Cole Robinson), check that qemu support -drive format= (Cole Robinson), improve emulator detection (Cole Robinson), changes to config parser to accomodate VMX syntax (Matthias Bolte), update network schemas and driver for missing elements (Satoru SATOH), avoid changing file context if not needed (Tim Waugh), skip labelling if no src path (Cole Robinson), add arm emulation if qemu-system-arm is present (C.J. Adams-Collier)
- Cleanups: daemon check logging env variables (Daniel Berrange), User Mode Linux start and stop cleanups (Daniel Berrange), share the NUMA api implementations (Daniel Berrange), storage module dependancies (Dave Allan), refactor storage XML parsing (Cole Robinson), big cleanup of logging code (Amy Griffis), superfluous % on format (Matthias Bolte), cleanups and updates on OpenNebula driver (Daniel Berrange and Abel Miguez Rodriguez)

### 0.6.4: May 29 2009

- New features: new API virStorageVolCreateXMLFrom (Cole Robinson), full VBox graphic capabilities (Pritesh Kothari), Interface config APIs (Laine Stump), APIs for domain XML conversions (Daniel Berrange), initial version of OpenNebula driver (Abel Miguez Rodriguez)
- Portability: better compiler warning selection (Daniel Berrange), Win32 portability fixes (Daniel Berrange)
- Documentation: documentation for <sound> device XML format (Cole Robinson), storage format documentation fixes (Ryota Ozaki), docs for XML conversion APIs (Daniel Berrange), inconsistencies in storage volume docs and schemas (Ryota Ozaki)
- Bug fixes: fix hostdev managed handling (Mark McLoughlin), lxc_controller should not cash without args (Guido Gunther), bug fixes in I/O routines (Guido Gunther), fix migrationsave/restore for QEmu 0.10.0 (Daniel Berrange), avoid crash on VBox init (Guido Gunther), fix dev and cgroup init in LXC (Ryota Ozaki), QEmu startup fix (Cole Robinson), block node reboots from LXCs (Ryota Ozaki), QEmu argv detection fix for recent kvm (Daniel Berrange), fix watch/timer event deletion (Daniel Berrange), fix XML escaping bug, various locking bugs (Daniel Berrange), avoid a deadlock in HAL nodedev driver (Cole Robinson), detection of node device media insert/eject (Cole Robinson), broken networking with new QEMU/KVM >= 86 (Daniel Berrange), various fixes in domain and network startup error report (Cole Robinson), double free on unexpected client disconnect (Daniel Berrange)
- Improvements: cleanups and doc on virExec (Cole Robinson), error reporting in QEmu migrations (Cole Robinson), better path and driver detection in VBox (Pritesh Kothari), avoid caching QEMU driver capabilities(Cole Robinson), multiple graphics elements definitions (Pritesh Kothari), LSB init header init.d improvements (Frederik Himpe), special erro code for invalid operations (Daniel Berrange), dlopen error logging (Daniel Berrange), fix UUID and name uniqueness (Daniel Berrange), improvement on VBox initialization (Pritesh Kothari and Dan Berrange), "Host only" and "Internal" network in VBox (Pritesh Kothari), add utility virExecDaemonize (Cole Robinson), enable bridges without IP (Ludwig Nussel), 'make -s' silencing (Daniel Berrange), test case for exercising the event loop (Daniel Berrange), virsh commands vol-clone and vol-create-from (Cole Robinson), new xend don't use [] around cpumaps (Tatsuro Enokura), add the CIL mutex lock checker (Daniel Berrange), fix some LXC error code (Amy Griffis), virInterface python bindings (Daniel Berrange), fix to the example code for event handling (Pritesh Kothari), always add location informations to logging (Daniel Berrange), python domain events example and binding (Daniel Berrange), PPC Qemu Machine Type update (Thomas Baker)
- Cleanups: strings bug in virsh (Daniel Berrange), various cleanups in storage code (Cole Robinson), rpm spec cleanups, destructors data cleanups (Laine Stump), some QEmu code refactoring (Daniel Berrange), avoid dependancy on libcap (Daniel Berrange), python import cleanup (Cole Robinson), virAsprintf based cleanups in storage code (Cole Robinson), fix some direct stderr logging, OpenNebula driver cleanups (Daniel Berrange)

### 0.6.3: Apr 24 2009

- New features: VirtualBox driver support (Pritesh Kothari), virt-xml-validate new command (Daniel Berrange)
- Portability: patch to build on Centos (Joseph Shraibman), build breakage (Anton Protopopov),
- Documentation: Linux Containers documentation (Serge Hallyn), improvement and updates of architecture pages, fix virNodeGetFreeMemory documentation to reflect reality, man page cleanups (Daniel Berrange), man page typo (Robert P. J. Day), VirtualBox Documentation (Pritesh Kothari),
- Bug fixes: veth off-by-one error (Dan Smith), vcpupin to inactive Xen crash (Takahashi Tomohiro), virsh ttyconsole return value, use format= not fmt= on QEmu commandline (Mark McLoughlin), use UUID for internal domain lookups (Daniel Berrange), remote domain ID related bugs (Daniel Berrange), QEmu pidfile handling bugs (Daniel Berrange), network config handling on old Xen (Daniel Berrange)
- Improvements: add SCSI storage rescan (David Allan), rootless LXC containers support improvements (Serge Hallyn), getHostname support for LXC (Dan Smith), cleanup and logging output of some domain functions (Guido Günther), drop pool lock when allocating volumes (Cole Robinson), LXC handle kernel without CLONE_NEWUSER support (Serge Hallyn), cpu pinning on defined Xen domains (Takahashi Tomohiro), dynamic bridge names support (Soren Hansen), LXC use of private /dev/pts when available (Daniel Berrange), virNodeDeviceCreateXML and virNodeDeviceDestroy entry points (Dave Allan)
- Cleanups: don't hardcode getgrnam_r buffer to 1024 bytes (Guido Günther), qemudBuildCommandLine API cleanup (Daniel Berrange),

### 0.6.2: Apr 3 2009

- New features: support SASL auth for VNC server (Daniel Berrange), memory ballooning in QEMU (Daniel Berrange), SCSI HBA storage pool support (Dave Allan), PCI passthrough in Xen driver (Daniel Berrange)
- Portability: be more flexible in QEmu binaries paths (Daniel Berrange), Mingw portability fixes (Daniel Berrange),
- Documentation: add security attributes in RNG schemas, cleanup of architecture docs, missing disk bus values in RNG schemas,
- Bug fixes: tap vs vbd type on block detach (Cole Robinson and Takahashi Tomohiro), bad free on storage volume error (Daniel Berrange), maplenght computations in remote driver (Daniel Berrange), event dispatching in the daemon (Daniel Berrange), virDomainSetVcpus deadlock (Daniel Berrange), save deadlock in test driver (Cole Robinson), fix timing of security driver init (Cole Robinson), forbid readonly connections from dumping the XML safe info (Cole Robinson), file descriptor leak on remote access, fix labelling of shared/readonly devices (Dan Walsh), virsh missing auth on shell commands (Matthias Bolte), avoid zombie on exec pipe errors (Ryota Ozaki), memory leak in virNodeDeviceGetParent (Daniel Berrange), URI check in migration (Daniel Berrange), various memory bug fixes (Daniel Berrange), python bindings generator fix (Daniel Berrange), NUMA memory fixes (Daniel Berrange), various svirt fixes (Daniel Berrange), fix sparse volume allocation reporting (Cole Robinson), test driver domain restore return value (Cole Robinson), do not lose file format info on volume refresh (Cole Robinson)
- Improvements: get CPU usage info for LXC (Ryota Ozaki), fix domain RNG to add ac97 and tests (Pritesh Kothari), OpenVZ support for non-template filesystem root (Florian Vichot), improve arch capabilities generation (Daniel Berrange), modularization of spec file (Ryota Ozaki), better error reports in SEXPR generation (Daniel Berrange), support for vifname parameter in VIF config (Daniel Berrange), localtime handling for new xen (Daniel Berrange), error reporting/ verification of security labels (Dan Walsh), add --console arg for create and start virsh commands (Daniel Berrange), refresh volume alloc/capacity when dumping XML (Cole Robinson)
- Cleanups: FILE * leaks removal, unused parameters flagging (Maximilian Wilhelm), switch to pre-C99 struct initialization for drivers (Chris Lalancette), symlinks resolving cleanup (Daniel Berrange)

### 0.6.1: Mar 3 2009

- New features: new APIs for Node device detach reattach and reset (Mark McLoughlin), sVirt mandatory access control support (James Morris and Dan Walsh)
- Portability: non gcc toolchain (John Levon), gcc-4.4 warnings fixes (Mark McLoughlin), fix build without LXC and QEmu (Jim Meyering)
- Documentation: man page bugzilla URL (Mark McLoughlin), typo in domain format (Jesse Farinacci), clock offset fix (Mark McLoughlin), hostdev description typo (Mark McLoughlin), static host IP (Charles Duffy), new example program (David Allan)
- Bug fixes: NULL dereference in LXC (Jim Meyering), fix domain error reporting (John Levon), fix loop of libvirtd --timeout (Daniel Berrange), limit history to 500 to restrict virsh memory (Daniel Berrange), wrong lvm volume format check (Cole Robinson), I/O error in daemon and associated remote acces crash (Daniel Berrange), fix autostart of session daemon (Daniel Berrange), restart guest on qemu migration failures (Chris Lalancette), config parsing leaks (Ryota Ozaki), DBus multithreading activation to avoid crashes (Daniel Berrange), mark defined network descriptions as persistent (Cole Robinson), qemu+tls handshake negotiation hang (Chris Lalancette)
- Improvements: don't hardcode ssh port (Guido Günther), new test cases and testing infrastructure (Jim Meyering), improve the SExpr parser (John Levon), proper error reporting on xend shutdown command (John Levon), proper handling of errors when saving QEmu domains state (Guido Günther), revamp of the internal error memory APIs (John Levon), better virsh error reporting (John Levon), more daemon options to allow running multiple daemons (Jim Meyering), error handling when creating a QEmu domain (Guido Günther), fix timeouts in QEmu log reading (Guido Günther), migration with xend 3.3 fixes (John Levon), virsh XML dump flags cleanup (Cole Robinson), fix build with loadable drivers (Maximilian Wilhelm), internal XML APIs to read long long and hexa values (Mark McLoughlin), function to parse node device XML descriptions and associated test (Mark McLoughlin), generate network bridge names if not provided (Cole Robinson), recognize ejectable media in hostdev hal driver (Cole Robinson), integration of sVirt (Daniel Berrange)
- Cleanups: printf NULL string checks (John Levon), remove uses of strerror and use virStrerror (Jim Meyering), remove redundant NULL assignments (Jim Meyering), QEmu driver logging and exec cleanups (Jim Meyering), many error handling cleanups (Jim Meyering), XML module cleanups (Mark McLoughlin), compiler warning (Maximilian Wilhelm), daemon TCP listen cleanup (Cole Robinson), size_t type cleanup (Guido Günther), parallel make fix (Michael Marineau), storage error diagnostic fix (Ryota Ozaki), remove redundant monitor watch variable (Cole Robinson), qemu AttachDevice error report improvement (Cole Robinson), virsh output cleanup (Jim Meyering), various tests cleanups and improvements (Jim Meyering), fix the internal export list with new APIs (Daniel Berrange), cleanups on new APIs for Node device (Daniel Berrange)

### 0.6.0: Jan 31 2009

- New features: thread safety of the API and event handling (Daniel Berrange), allow QEmu domains to survive daemon restart (Guido Günther), extended logging capabilities, support copy-on-write storage volumes (Daniel Berrange), support of storage cache control options for QEmu/KVM (Daniel Berrange)
- Portability: fix old DBus API problem, Debian portability fix (Daniel Berrange), fix distcheck (Jim Meyering), build in debug mode (Jim Meyering), libnuma API portability (Jim Meyering), many portability fixes pointed by Solaris (John Levon), non-gcc portability fixes (John Levon), various include fixes (Jim Meyering), various Windows and Mingw portability fixes (Daniel Berrange), solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel Berrange)
- Documentation: typo fixes (Richard Jones), logging support, vnc keymap attributes (Guido Günther), HACKING file updates (Jim Meyering), new PCI passthrough format, libvirt-qpid and UML driver documentation (Daniel Berrange), provide RNG schemas for all XML formats used in libvirt APIs (Daniel Berrange),
- Bug fixes: segfault on virtual network without bridge name (Cole Robinson), various locking fixes (Cole Robinson), fix serial and parallel devices on tcp/unix/telnet (Guido Günther), leak in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC), missing check in read-only connections (Daniel Berrange), OpenVZ crash and mutex fixes (Anton Protopopov), couple of daemon bug fixes (John Levon), OpenVZ MAC addresses generation (Evgeniy Sokolov), poll call initialization fix (Daniel Berrange), various Xen driver fixes (John Levon), segfault on device back compat (Cole Robinson), couple Xen bug fixes coming from RHEL (Markus Armbruster), buffer overflow in libvirt proxy (rasputin@email.ru), vnc port report (John Levon), repair save and restore on recent KVM versions (Daniel Berrange), Xen cpu pinning XML fix (John Levon), various xen driver fixes (Daniel Berrange), some memory leak fixes (Daniel Berrange)
- Improvements: driver infrastructure and locking (Daniel Berrange), Test driver infrastructure (Daniel Berrange), parallelism in the daemon and associated config (Daniel Berrange), virsh help cleanups (Jim Meyering), logrotate daemon logs (Guido Günther), more regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim), add --version flag to daemon (Dave Allan), memory consumption cleanup (Dave Allan), QEmu pid file and XML states for daemon restart (Guido Günther), gnulib updates (Jim Meyering and Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic internal thread API (Daniel Berrange), RHEL-5 specific Xen configure option and code (Markus Armbruster), save domain state as string in status file (Guido Günther), add locking to all API entry points (Daniel Berrange), new ref counting APIs (Daniel Berrange), IP address for Xen bridges (John Levon), driver format for disk file types (Daniel Berrange), improve QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies for Xen fully virt (John Levon), support VNC password settings for QEmu/KVM (Daniel Berrange), qemu driver version reporting (Daniel Berrange)
- Cleanups: converting linked lists to arrays (Daniel Berrange), daemon RPC handling refactoring (Daniel Berrange), strings cleanups (Jim Meyering), gethostby* cleanup and test (Jim Meyering), some code fixes (Dave Allan), various code cleanup (Jim Meyering), virsh argument handling cleanup (Jim Meyering), virAsprintf cleanup replacement (Guido Günther), QEmu monitor reads (Cole Robinson), Makefile cleanups (Guido Günther), Xen code cleanups (John Levon), revamp of ELF export scripts (John Levon), domain event callback args (John Levon), enforce use of pid_t (John Levon), virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings (Jim Meyering), add virKillProcess (Guido Günther), add virGetHostname (David Lutterkort), add flags argument to the full XML parsing stack (Guido Günther), various daemon code cleanups (Guido Günther), handling of daemon missing config file (Jim Meyering), rpcgen invocation cleanup (Richard Jones), devhelp builkd makefile cleanups (John Levon), update error handling for threading (Daniel Berrange), remove all non-rentrant POSIX calls usage (Daniel Berrange), many small cleanups (Jim Meyering and Daniel Berrange), examples Makefile generator (John Levon), mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM error paths (Jim Meyering), temporary fix fro valgrind on lxc (Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)

### 0.5.1: Dec 4 2008

- Portability: fix missing dep in spec file, fix compilation with new NUMA libraries (Daniel Berrange), udev compatibility for RHEL (Chris Lalancette),
- Documentation: documentation copy and paste errors and typo (Cole Robinson)
- Bug fixes: add a delay in storage backend for disks to show up (Chris Lalancette), fix parsing for CDRom device with no source (Daniel Berrange), use xenstore to list domains to avoid some bugs (Guido Günther), remove a leak in xen inotify code (Daniel Berrange), UML driver freeing of uninitialialized variable (Ron Yorston), fix UML inotify code (Daniel Berrange), crash when adding storage without a format (Cole Robinson)
- Improvements: use xend preferably to hypervisor call to set Xen max memory (Jim Fehlig), allow remote://hostname/ URI for automatic probe of hypervisors (Daniel Berrange), fix daemon configuration regression testing (Jim Meyering ), check /usr/bin/kvm for QEmu driver init (Guido Günther), proper active vs. inactive differentiation (Guido Günther), improve MTU setting on tap interfaces (Eduardo Habkost), increase timeout for initial QEmu monitor poll (Cole Robinson)
- Cleanups:fix improper initialisations (Jim Meyering)

### 0.5.0: Nov 25 2008

- New features: CPU and scheduler support for LXC (Dan Smith), SDL display configuration (Daniel Berrange), domain lifecycle event support for QEmu and Xen with python bindings (Ben Guthro and Daniel Berrange), KVM/QEmu migration support (Rich Jones and Chris Lalancette), User Mode Linux driver (Daniel Berrange), API for node device enumeration using HAL and DeviceKit with python bindings (David Lively),
- Portability: RHEL build fixes, VPATH build (Guido Gunther), many MinGW related cleanups and fixes (Richard Jones), compilation without libvirtd (Richard Jones), Add a Windows icon (Richard Jones), sys/poll.h portability fixes (Daniel Berrange), gnulib and mingw cleanups (Jim Meyering),
- Documentation: virsh man page cleanups (Mark McLoughlin), doc for NIC model selection (Richard Jones), monitoring section, link to AMQP bindings, inew APIs, UML driver docs (Daniel Berrange),
- Bug fixes: Xen interfaces ordering (Jim Fehlig), startup timeout with multiple pty (Cole Robinson), segfault if QEmu without active virtual network (Cole Robinson), qemu small leak (Eduardo Habkost), index creation for more than 26 disks (Sanjay Rao and Chris Wright), virRealloc handling of 0 (Daniel Berrange), missing pointer initialization (Chris Lalancette), bus device index bug (Guido Günther), avoid crash in some error patch (Chris Lalancette), fix a problem in storage back-end (Chris Lalancette), minimum domain memory size check for Xen (Shigeki Sakamoto), switch off QEmu cache if device is shared (Charles Duffy), logical volume definition before scan bug (Chris Lalancette), a couple of memory leaks on QEmu vnc (Jim Meyering), lvs parsing fixes (Cole Robinson),
- Improvements: LXC resources control and internal cgroup API (Dan Smith), virDomainCreateLinux renamed virDomainDefineXML, network driver modularization (Daniel Berrange), change the way domain and net are reported in errors (Jim Meyering), partition table scan on iSCSI (Chris Lalancette), qemudDiskDeviceName to handle normal disks (Guido Günther), qemudDomainBlockStats improvement (Guido Günther), scsi/virtio hotplug support for KVM (Guido Günther), USB hot addition in QEmu (Guido Günther), logical pool and storage backend XML dump improvement (Chris Lalancette), MAC addresses prefix per driver (Daniel Berrange), OpenVZ getVersion support (Daniel Berrange), hot removal of scsi/virtio disks for KVM (Guido Günther), test storage driver (Cole Robinson), iSCSI and disk storage driver improvement on path handling (Chris Lalancette), UUID and ID support for Xenner (Daniel Berrange), better logging when when executing commands (Cole Robinson), bridged network for OpenVZ (Daniel Berrange), OpenVZ config file params (Evgeniy Sokolov), allow to build drivers as libtool convenience libs (Daniel Berrange), fully versioned linker script for exported ABI (Daniel Berrange), Push URI probing down into drivers open (Daniel Berrange), move all stateful drivers into the daemon binary (Daniel Berrange), improve domain event with a detail field (Daniel Berrange), domain events for QEMU driver (Daniel Berrange), event unregister callback crash (David Lively), plug a few leaks (Daniel Berrange), internal APIs for handling node device XML config (David Lively), tweaks to node device implementation (Daniel Berrange), OpenVZ vCPUs values init (Evgeniy Sokolov)
- Cleanups: C99 initializers (Guido Gunther), test output (Cole Robinson), debug macro centralization (Cole Robinson), various error handling (Guido Günther), safewrite use cleanup (Jim Meyering), centralize error reporting logic (Cole Robinson), avoid printf warnings (Daniel Berrange), use arrays instead of list for internal APIs (Daniel Berrange), remove many format string warnings Jim Meyering), avoid syntax check warnings (Chris Lalancette), improve po-check and list generation (Jim Meyering), .gitignore generation and handling (Jim Meyering), use ARRAY_CARDINALITY (Jim Meyering), gnulib updates and switch to use netdb.h (Jim Meyering), drop usage of socket_errno (Jim Meyering), remove socketcompat.h (Jim Meyering), more tests (Jim Meyering), drop virStringList (Daniel Berrange), reformatting and isolation of the error APIs (Daniel Berrange), cleanup internal.h and move internal APIs in specific headers (Daniel Berrange), move domain events helpers into domain_events.c (Daniel Berrange), cleanup the way optional modules are compiled (Daniel Berrange), add new logging module, optional dlopen of drivers (Daniel Berrange), various new tests (Jim Meyering), cleanups when Xen is not configured in (Daniel Berrange), add some missing functions comments (Jim Meyering),

### 0.4.6: Sep 23 2008

- Documentation: fix some comments in API (Anton Protopopov), cleanup and extension of bindings and windows pages (Richard Jones)
- Portability: missing include file (Richard Jones)
- Bug fixes: avoid a segfault if missing qemu emulator (Cole Robinson), reading vncdisplay from xend domain (Cole Robinson), segfault in OpenVZ (Evgeniy Sokolov), fix parsing of pool without a source (Chris Lalancette and Daniel Berrange)
- Improvements: add storage disk volume delete (Cole Robinson), KVM dynamic max CPU detection (Guido Günther), spec file improvement for minimal builds (Ben Guthro), improved error message in XM configuration module (Richard Jones), network config in OpenVZ support (Evgeniy Sokolov), enable stopping a pool in logical storage backend and cleanup deletion of pool (Chris Lalancette)
- Cleanups: deadcode removal (Nguyen Anh Quynh), fix one test case (Daniel Berrange), various strings and space cleanups (Daniel Berrange), structure initialization cleanup (Chris Lalancette)

### 0.4.5: Sep 8 2008

- New features: NETNS support for Linux containers (Dan Smith), unified XML domain and network parsing for all drivers (Daniel Berrange), OpenVZ features improvements (Evgeniy Sokolov), OpenVZ and Linux containers support now default, USB device passthrough for QEmu/KVM (Guido Günther), storage pool source discovery (David Lively)
- Portability: fixes for MinGW (Atsushi SAKAI and Daniel Berrange), detection of xen lib improvement (David Lively), storage backend portability for SLES (David Lively), fix make distclean and distcheck (Jim Meyering), fix build failures on RHEL4, lot of MinGW portability fixes (Atsushi SAKAI and Daniel Berrange), HTML generation fix, -lpthread explicit linking when needed (Jim Meyering)
- Documentation: various typo fixes (Anton Protopopov, Toth István, Atsushi SAKAI, Nguyen Anh Quynh), Java bindings docs, remove Xen centric comments (Guido Günther), various typo in comments (Chris Lalancette), docs and API comments fixes (Charles Duffy), how to contribute to open source link (Richard Jones), memory unit fixups (matthew chan)
- Bug fixes: memory leaks and testing for OOM (Daniel Berrange), do_open driver bug(Evgeniy Sokolov), don't use polkit auth when running as non-root (Daniel Berrange), boot of CDRom devices in QEmu/KVM (Daniel Berrange), fix OpenVZ probe function (Evgeniy Sokolov), ID related lookup fixes in OpenVZ (Evgeniy Sokolov), pool cration for netfs (Cole Robinson), check for migrate support with QEmu (Guido Günther), check against double create with QEmu (Guido Günther), broken open failure detection in QEmu (Guido Günther), UUID string conversions in QEmu (Guido Günther), various small cleanup and bug fixes (Daniel Berrange), ID related fixes in the test driver (Daniel Berrange), better error reporting on XML parsing (Daniel Berrange), empty CD-ROM source device section (Chris Lalancette), avoid crashes for interface without a name in QEmu (Guido Günther), provide the real vncport (Charles Duffy), fix forward delay (Daniel Berrange), new VM state is initialized to be SHUTOFF (Daniel Berrange), virsh attach-disk bug fixes (Chris Lalancette), veth clash of device names (Dan Smith), connection lookup fixes on storage creation (Cole Robinson), parted call fix (Cole Robinson), use "server" option when using serial/telnet with QEmu (Mark McLoughlin), duplicate virInitialize calls (Nguyen Anh Quynh), many fixes to virExec and related functions (Daniel Berrange), size of disk without partitions (Cole Robinson), creating and cleaning up logical volumes with target path (Cole Robinson), fix reporting of virConnectOpen problems (Daniel Berrange), veth cleanup at shutdown (Dan Smith), lookup of Xen VMs after define (Cole Robinson), fix emulator reported capabilities (Cole Robinson), avoid segfault on KVM CD eject (Cole Robinson), fix disk ordering and avoid duplicate in QEmu XML parsing (Cole Robinson), update domain XML after device hotplug (Cole Robinson), use poweroff instead of halt when shutting down a Xen domain (John Levon), don't dump core of Xen domain live by default (John Levon), vgcreate command line size bug (Jim Fehlig), signed/unsigned issue in probing file (Cole Robinson), Fix Xen domains without PVFB console (Daniel Berrange), OpenVZ config read bug fix (Evgeniy Sokolov).
- Improvements: improved failure diagnostic for TAP (Jim Meyering), better exec and error diagnostic for OpenVZ commands (Evgeniy Sokolov), OpenVZ auto start and stop of domains (Evgeniy Sokolov), OpenVZ domain cpu time consumption (Evgeniy Sokolov), virsh shutdown improvements and test (Jim Meyering), better report of XML well formedness errors (Richard Jones), new XML elements (Daniel Berrange), virsh "edit" command (Richard Jones), save UUID of OpenVZ domains (Evgeniy Sokolov), improve xen blocks statistics (Chris Lalancette), gnulib updates (Jim Meyering), allow to add disk as USB devices (Guido Günther), LXC container process should survive libvirtd restarts (Daniel Berrange), allow to define static host domain configs, number of CPU used by OpenVZ domains (Evgeniy Sokolov), private root fs for LXC (Daniel Berrange), storage source information in storage pools (David Lively), virsh reports attach and detach success (Cole Robinson), detect failure in QEmu eject command (Cole Robinson), add support for eect on floppy and SCSI cdroms for QEmu (Cole Robinson), LXC hypervisor version extraction (Dan Smith), Augeas config file support (Daniel Berrange), support for a domain name in network config (JJ Reynolds).
- Cleanups: Python verbosity cleanup (Ryan Scott), space and tabs cleanups (Atsushi SAKAI), OpenVZ and LXC drivers cleanup and unification of XML handling (Daniel Berrange), updates to Relax-NG XML schemas (John Levon and Daniel Berrange), more printf format checkings (Jim Meyering), VIR_FREE related cleanups (Jim Meyering), integer string parsing cleanup (Evgeniy Sokolov), initial OpenVZ xml refactoring (Evgeniy Sokolov), better error message on domain redefine (Charles Duffy), check XML files against the RNG Schemas (Daniel Berrange), const-correctness in virsh (Richard Jones and Jim Meyering), const-correctness and cleanups in LXC and OpenVZ drivers (Daniel Berrange), virFileLinkPointsTo rewrite (Jim Meyering), cleanup of the conditional compilation of C files (Daniel Berrange), shell quoting fixes (Jim Meyering), parallel build support (James Morris and Jim Meyering), new convenenience virFileReadLimFD function (Jim Meyering).

### 0.4.4: Jun 25 2008

- Bug fixes: QEmu network serialization (Kaitlin Rupert), internal memory allocation fixes (Chris Lalancette Jim Meyering), virsh large file config problem (Jim Meyering), xen list APIs when max is zero, string escape problems in the xm driver
- Improvements: add autogen to tarballs, improve iSCSI support (Chris Lalancette), localization updates
- Cleanups: const-ness fixed (Daniel P. Berrange), string helpers for enumeations (Daniel P. Berrange)

### 0.4.3: Jun 12 2008

- New features: Linux Container start and stop (Dave Leskovec), Network interface model settings (Daniel Berrange),serial and parallel device support for QEmu and Xen (Daniel Berrange), Sound support for QEmu and Xen (Cole Robinson), vCPU settings for QEmu (Cole Robinson), support for NUMA and vCPU pinning in QEmu (Daniel Berrange), new virDomainBlockPeek API (Richard Jones)
- Documentation: coding guidelines (Jim Meyering and Richard Jones), small man page missing entries and cleanup, Web site revamp (Daniel Berrange), typo fixes (Atsushi SAKAI), more docs on network XML format (Daniel Berrange), libvirt Wiki (Daniel Berrange), policykit config docs (Cole Robinson), XML domain docs revamp (Daniel Berrange), docs for remote listen-tls/tcp fixes (Kenneth Nagin),
- Bug fixes: save change to config file for Xen (Ryan Scott), fix /var/run/libvirt/ group ownership (Anton Protopopov), ancient libparted workaround (Soren Hansen), out of bount array access (Daniel Berrange), remote check bug (Dave Leskovec), LXC signal and daemon restart problems (Dave Leskovec), bus selection logic fix in the daemon config (Daniel Berrange), 2 memory leaks in the daemon (Jim Meyering), daemon pid file logic bug fix (Daniel Berrange), python generator fixes (Daniel Berrange), ivarious leaks and memory problem pointed by valgrind (Daniel Berrange), iptables forwarding cleanup (Daniel Berrange), Xen cpuset value checking (Hiroyuki Kaguchi), container process checks for LXC (Dave Leskovec), let xend check block device syntax (Hiroyuki Kaguchi), UUIDString for python fixes (Cole Robinson)
- Improvements: fixes for MinGW compilation (Richard Jones), autostart for running Xen domains (Cole Robinson), control of listening IP for daemon (Stefan de Konink), various Xenner related fixes and improvements (Daniel Berrange) autostart status printed in virsh domainfo (Shigeki Sakamoto), better error messages for xend driver (Richard Jones)
- Code cleanups: OpenVZ compilation (Richard Jones), conn dom and net fields deprecation in error structures (Richard Jones), Xen-ism on UUID (Richard Jones), add missing .pod to dist (Richard Jones), tab cleanup from sources (Jim Meyering), remove unused field in virsh control structure (Richard Jones), compilation without pthread.h (Jim Meyering), cleanup of tests (Daniel Berrange), syntax-check improvements (Jim Meyering), python cleanup, remove dependancy on libc is_* character tests (Jim Meyering), format related cleanups (Jim Meyering), cleanup of the buffer internal APIs (Daniel Berrange), conversion to the new memory allocation API (Daniel Berrange), lcov coverage testing (Daniel Berrange), gnulib updates (Jim Meyering), compatibility fix with RHEL 5 (Daniel Berrange), SuSE compatibility fix (Jim Fehlig), const'ification of a number of structures (Jim Meyering), string comparison macro cleanups (Daniel Berrange), character range testing cleanups and assorted bug fixes (Jim Meyering), QEmu test fixes (Daniel Berrange), configure macro cleanup (Daniel Berrange), refactor QEmu command line building code (Daniel Berrange), type punning warning in remote code (Richard Jones), refactoring of internal headers (Richard Jones), generic out of memory testing and associated bug fixes (Daniel Berrange), don't raise internal error for unsupported features (Kaitlin Rupert), missing driver entry points (Daniel Berrange)

### 0.4.2: Apr 8 2008

- New features: memory operation for QEmu/KVM driver (Cole Robinson), new routed networking schemas (Mads Olesen)
- Documentation: storage documentation fixes (Atsushi Sakai), many typo cleanups (Atsushi Sakai), string fixes (Francesco Tombolini)
- Bug fixes: pointer errors in qemu (Jim Meyering), iSCSI login fix (Chris Lalancette), well formedness error in test driver capabilities (Cole Robinson), fixes cleanup code when daemon exits (Daniel Berrange), CD Rom change on live QEmu/KVM domains (Cole Robinson), setting scheduler parameter is forbidden for read-only (Saori Fukuta)i, fixes for TAP devices (Daniel Berrange), assorted storage driver fixes (Daniel Berrange), Makefile fixes (Jim Meyering), Xen-3.2 hypercall fix, fix iptables rules to avoid blocking traffic within virtual network (Daniel Berrange), XML output fix for directory pools (Daniel Berrange), remove dandling domain/net/conn pointers from error data, do not ask polkit auth when root (Daniel Berrange), handling of fork and pipe errors when starting the daemon (Richard Jones)
- Improvements: better validation of MAC addresses (Jim Meyering and Hiroyuki Kaguchi), virsh vcpupin error report (Shigeki Sakamoto), keep boot tag on HVM domains (Cole Robinson), virsh non-root should not be limited to read only anymore (Daniel Berrange), switch to polkit-auth from polkit-grant (Daniel Berrange), better handling of missing SElinux data (Daniel Berrange and Jim Meyering), cleanup of the connection opening logic (Daniel Berrange), first bits of Linux Containers support (Dave Leskovec), scheduler API support via xend (Saori Fukuta), improvement of the testing framework and first tests (Jim Meyering), missing error messages from virsh parameters validation (Shigeki Sakamoto), improve support of older iscsiadm command (Chris Lalancette), move linux container support in the daemon (Dan Berrange), older awk implementation support (Mike Gerdts), NUMA support in test driver (Cole Robinson), xen and hvm added to test driver capabilities (Cole Robinson)
- Code cleanup: remove unused getopt header (Jim Meyering), mark more strings as translatable (Guido Günther and Jim Meyering), convert error strings to something meaningful and translatable (Jim Meyering), Linux Containers code cleanup, last error initializer (Guido Günther)

### 0.4.1: Mar 3 2008

- New features: build on MacOSX (Richard Jones), storage management (Daniel Berrange), Xenner - Xen on KVM - support (Daniel Berrange)
- Documentation: Fix of various typos (Atsushi SAKAI), memory and vcpu settings details (Richard Jones), ethernet bridging typo (Maxwell Bottiger), add storage APIs documentation (Daniel Berrange)
- Bug fixes: OpenVZ code compilation (Mikhail Pokidko), crash in policykit auth handling (Daniel Berrange), large config files (Daniel Berrange), cpumap hypercall size (Saori Fukuta), crash in remote auth (Daniel Berrange), ssh args error (Daniel Berrange), preserve vif order from config files (Hiroyuki Kaguchi), invalid pointer access (Jim Meyering), virDomainGetXMLDesc flag handling, device name conversion on stats (Daniel Berrange), double mutex lock (Daniel Berrange), config file reading crashes (Guido Guenther), xenUnifiedDomainSuspend bug (Marcus Meissner), do not crash if /sys/hypervisor/capabilities is missing (Mark McLoughlin), virHashRemoveSet bug (Hiroyuki Kaguchi), close-on-exec flag for qemud signal pipe (Daniel Berrange), double free in OpenVZ (Anton Protopopov), handle mac without addresses (Shigeki Sakamoto), MAC addresses checks (Shigeki Sakamoto and Richard Jones), allow to read non-seekable files (Jim Meyering)
- Improvements: Windows build (Richard Jones), KVM/QEmu shutdown (Guido Guenther), catch virExec output on debug (Mark McLoughlin), integration of iptables and lokkit (Mark McLoughlin), keymap parameter for VNC servers (Daniel Hokka Zakrisson), enable debug by default using VIR_DEBUG (Daniel Berrange), xen 3.2 fixes (Daniel Berrange), Python bindings for VCPU and scheduling (Daniel Berrange), framework for automatic code syntax checks (Jim Meyering), allow kernel+initrd setup in Xen PV (Daniel Berrange), allow change of Disk/NIC of an inactive domains (Shigeki Sakamoto), virsh commands to manipulate and create storage(Daniel Berrange), update use of PolicyKit APIs, better detection of fedault hypervisor, block device statistics for QEmu/KVM (Richard Jones), various improvements for Xenner (Daniel Berrange)
- Code cleanups: avoid warnings (Daniel Berrange), virRun helper function (Dan Berrange), iptable code fixes (Mark McLoughlin), static and const cleanups (Jim Meyering), malloc and python cleanups (Jim Meyering), xstrtol_ull and xstrtol_ll functions (Daniel Berrange), remove no-op networking from OpenVZ (Daniel Berrange), python generator cleanups (Daniel Berrange), cleanup ref counting (Daniel Berrange), remove uninitialized warnings (Jim Meyering), cleanup configure for RHEL4 (Daniel Berrange), CR/LF cleanups (Richard Jones), various automatic code check and associated cleanups (Jim Meyering), various memory leaks (Jim Meyering), fix compilation when building without Xen (Guido Guenther), mark translatables strings (Jim Meyering), use virBufferAddLit for constant strings (Jim Meyering), fix make distcheck (Jim Meyering), return values for python bindings (Cole Robinson), trailing blanks fixes (Jim Meyering), gcc-4.3.0 fixes (Mark McLoughlin), use safe read and write routines (Jim Meyering), refactoring of code dealing with hypervisor capabilities (Daniel Berrange), qemudReportError to use virErrorMsg (Cole Robinson), intemediate library and Makefiles for compiling static and coverage rule support (Jim Meyering), cleanup of various leaks (Jim Meyering)

### 0.4.0: Dec 18 2007

- New features: Compilation on Windows cygwin/mingw (Richard Jones), Ruby bindings (David Lutterkort), SASL based authentication for libvirt remote support (Daniel Berrange), PolicyKit authentication (Daniel Berrange)
- Documentation: example files for QEMU and libvirtd configuations (Daniel Berrange), english cleanups (Jim Paris), CIM and OpenVZ references, document <shareable/>, daemon startup when using QEMU/KVM, document HV support for new NUMA calls (Richard Jones), various english fixes (Bruce Montague), OCaml docs links (Richard Jones), describe the various bindings add Ruby link, Windows support page (Richard Jones), authentication documentation updates (Daniel Berrange)
- Bug fixes: NUMA topology error handling (Beth Kon), NUMA topology cells without CPU (Beth Kon), XML to/from XM bridge config (Daniel Berrange), XM processing of vnc parameters (Daniel Berrange), Reset migration source after failure (Jim Paris), negative integer in config (Tatsuro Enokura), zero terminating string buffer, detect integer overflow (Jim Meyering), QEmu command line ending fixes (Daniel Berrange), recursion problem in the daemon (Daniel Berrange), HVM domain with CDRom (Masayuki Sunou), off by one error in NUMA cpu count (Beth Kon), avoid xend errors when adding disks (Masayuki Sunou), compile error (Chris Lalancette), transposed fwrite args (Jim Meyering), compile without xen and on solaris (Jim Paris), parsing of interface names (Richard Jones), overflow for starts on 32bits (Daniel Berrange), fix problems in error reporting (Saori Fukuta), wrong call to brSetForwardDelay changed to brSetEnableSTP (Richard Jones), allow shareable disk in old Xen, fix wrong certificate file (Jim Meyering), avoid some startup error when non-root, off-by-1 buffer NULL termination (Daniel Berrange), various string allocation fixes (Daniel Berrange), avoid problems with vnetXXX interfaces in domain dumps (Daniel Berrange), build fixes for RHEL (Daniel Berrange), virsh prompt should not depend on uid (Richard Jones), fix scaping of '<' (Richard Jones), fix detach-disk on Xen tap devices (Saori Fukuta), CPU parameter setting in XM config (Saori Fukuta), credential handling fixes (Daniel Berrange), fix compatibility with Xen 3.2.0 (Daniel Berrange)
- Improvements: /etc/libvirt/qemu.conf configuration for QEMU driver (Daniel Berrange), NUMA cpu pinning in config files (DV and Saori Fukuta), CDRom media change in KVM/QEMU (Daniel Berrange), tests for <shareable/> in configs, pinning inactive domains for Xen 3.0.3 (Saori Fukuta), use gnulib for portability enhancement (Jim Meyering), --without-libvirtd config option (Richard Jones), Python bindings for NUMA, add extra utility functions to buffer (Richard Jones), separate qparams module for handling query parameters (Richard Jones)
- Code cleanups: remove virDomainRestart from API as it was never used (Richard Jones), constify params for attach/detach APIs (Daniel Berrange), gcc printf attribute checkings (Jim Meyering), refactoring of device parsing code and shell escaping (Daniel Berrange), virsh schedinfo parameters validation (Masayuki Sunou), Avoid risk of format string abuse (Jim Meyering), integer parsing cleanups (Jim Meyering), build out of the source tree (Jim Meyering), URI parsing refactoring (Richard Jones), failed strdup/malloc handling (Jim Meyering), Make "make distcheck" work (Jim Meyering), improve xen internall error reports (Richard Jones), cleanup of the daemon remote code (Daniel Berrange), rename error VIR_FROM_LINUX to VIR_FROM_STATS_LINUX (Richard Jones), don't compile the proxy if without Xen (Richard Jones), fix paths when configuring for /usr prefix, improve error reporting code (Jim Meyering), detect heap allocation failure (Jim Meyering), disable xen sexpr parsing code if Xen is disabled (Daniel Berrange), cleanup of the GetType entry point for Xen drivers, move some QEmu path handling to generic module (Daniel Berrange), many code cleanups related to the Windows port (Richard Jones), disable the proxy if using PolicyKit, readline availability detection, test libvirtd's config-processing code (Jim Meyering), use a variable name as sizeof argument (Jim Meyering)

### 0.3.3: Sep 30 2007

- New features: Avahi mDNS daemon export (Daniel Berrange), NUMA support (Beth Kan)
- Documentation: cleanups (Toth Istvan), typos (Eduardo Pereira),
- Bug fixes: memory corruption on large dumps (Masayuki Sunou), fix virsh vncdisplay command exit (Masayuki Sunou), Fix network stats TX/RX result (Richard Jones), warning on Xen 3.0.3 (Richard Jones), missing buffer check in virDomainXMLDevID (Hugh Brock), avoid zombies when using remote (Daniel Berrange), xend connection error message (Richard Jones), avoid ssh tty prompt (Daniel Berrange), username handling for remote URIs (Fabian Deutsch), fix potential crash on multiple input XML tags (Daniel Berrange), Solaris Xen hypercalls fixup (Mark Johnson)
- Improvements: OpenVZ support (Shuveb Hussain and Anoop Cyriac), CD-Rom reload on XEn (Hugh Brock), PXE boot got QEmu/KVM (Daniel Berrange), QEmu socket permissions customization (Daniel Berrange), more QEmu support (Richard Jones), better path detection for qemu and dnsmasq (Richard Jones), QEmu flags are per-Domain (Daniel Berrange), virsh freecell command, Solaris portability fixes (Mark Johnson), default bootloader support (Daniel Berrange), new virNodeGetFreeMemory API, vncpasswd extraction in configuration files if secure (Mark Johnson and Daniel Berrange), Python bindings for block and interface statistics
- Code cleanups: virDrvOpenRemoteFlags definition (Richard Jones), configure tests and output (Daniel Berrange)

### 0.3.2: Aug 21 2007

- New features: KVM migration and save/restore (Jim Paris), added API for migration (Richard Jones), added APIs for block device and interface statistic (Richard Jones).
- Documentation: examples for XML network APIs, fix typo and schedinfo synopsis in man page (Atsushi SAKAI), hypervisor support page update (Richard Jones).
- Bug fixes: remove a couple of leaks in QEmu/KVM backend(Daniel berrange), fix GnuTLS 1.0 compatibility (Richard Jones), --config/-f option mistake for libvirtd (Richard Jones), remove leak in QEmu backend (Jim Paris), fix some QEmu communication bugs (Jim Paris), UUID lookup though proxy fix, setvcpus checking bugs (with Atsushi SAKAI), int checking in virsh parameters (with Masayuki Sunou), deny devices attach/detach for < Xen 3.0.4 (Masayuki Sunou), XenStore query memory leak (Masayuki Sunou), virsh schedinfo cleanup (Saori Fukuta).
- Improvement: virsh new ttyconsole command, networking API implementation for test driver (Daniel berrange), qemu/kvm feature reporting of ACPI/APIC (David Lutterkort), checking of QEmu architectures (Daniel berrange), improve devices XML errors reporting (Masayuki Sunou), speedup of domain queries on Xen (Daniel berrange), augment XML dumps with interface devices names (Richard Jones), internal API to query drivers for features (Richard Jones).
- Cleanups: Improve virNodeGetInfo implentation (Daniel berrange), general UUID code cleanup (Daniel berrange), fix API generator file selection.

### 0.3.1: Jul 24 2007

- Documentation: index to remote page, script to test certificates, IPv6 remote support docs (Daniel Berrange), document VIRSH_DEFAULT_CONNECT_URI in virsh man page (David Lutterkort), Relax-NG early grammar for the network XML (David Lutterkort)
- Bug fixes: leaks in disk XML parsing (Masayuki Sunou), hypervisor alignment call problems on PPC64 (Christian Ehrhardt), dead client registration in daemon event loop (Daniel Berrange), double free in error handling (Daniel Berrange), close on exec for log file descriptors in the daemon (Daniel Berrange), avoid caching problem in remote daemon (Daniel Berrange), avoid crash after QEmu domain failure (Daniel Berrange)
- Improvements: checks of x509 certificates and keys (Daniel Berrange), error reports in the daemon (Daniel Berrange), checking of Ethernet MAC addresses in XML configs (Masayuki Sunou), support for a new clock switch between UTC and localtime (Daniel Berrange), early version of OpenVZ support (Shuveb Hussain), support for input devices on PS/2 and USB buses (Daniel Berrange), more tests especially the QEmu support (Daniel Berrange), range check in credit scheduler (with Saori Fukuta and Atsushi Sakai), add support for listen VNC parameter un QEmu and fix command line arg (Daniel Berrange)
- Cleanups: debug tracing (Richard Jones), removal of --with-qemud-pid-file (Richard Jones), remove unused virDeviceMode, new util module for code shared between drivers (Shuveb Hussain), xen header location detection (Richard Jones)

### 0.3.0: Jul 9 2007

- Secure Remote support (Richard Jones). See the remote page of the documentation
- Documentation: remote support (Richard Jones), description of the URI connection strings (Richard Jones), update of virsh man page, matrix of libvirt API/hypervisor support with version information (Richard Jones)
- Bug fixes: examples Makefile.am generation (Richard Jones), SetMem fix (Mark Johnson), URI handling and ordering of drivers (Daniel Berrange), fix virsh help without hypervisor (Richard Jones), id marshalling fix (Daniel Berrange), fix virConnectGetMaxVcpus on remote (Richard Jones), avoid a realloc leak (Jim Meyering), scheduler parameters handling for Xen (Richard Jones), various early remote bug fixes (Richard Jones), remove virsh leaks of domains references (Masayuki Sunou), configCache refill bug (Richard Jones), fix XML serialization bugs
- Improvements: QEmu switch to XDR-based protocol (Dan Berrange), device attach/detach commands (Masayuki Sunou), OCaml bindings (Richard Jones), new entry points virDomainGetConnect and virNetworkGetConnect useful for bindings (Richard Jones), reunitifaction of remote and qemu daemon under a single libvirtd with a config file (Daniel Berrange)
- Cleanups: parsing of connection URIs (Richard Jones), messages from virsh (Saori Fukuta), Coverage files (Daniel Berrange), Solaris fixes (Mark Johnson), avoid [r]index calls (Richard Jones), release information in Xen backend, virsh cpupin command cleanups (Masayuki Sunou), xen:/// support as standard Xen URI (Richard Jones and Daniel Berrange), improve driver selection/decline mechanism (Richard Jones), error reporting on XML dump (Richard Jones), Remove unused virDomainKernel structure (Richard Jones), daemon event loop event handling (Daniel Berrange), various unifications cleanup in the daemon merging (Daniel Berrange), internal file and timer monitoring API (Daniel Berrange), remove libsysfs dependancy, call brctl program directly (Daniel Berrange), virBuffer functions cleanups (Richard Jones), make init script LSB compliant, error handling on lookup functions (Richard Jones), remove internal virGetDomainByID (Richard Jones), revamp of xen subdrivers interfaces (Richard Jones)
- Localization updates

### 0.2.3: Jun 8 2007

- Documentation: documentation for upcoming remote access (Richard Jones), virConnectNumOfDefinedDomains doc (Jan Michael), virsh help messages for dumpxml and net-dumpxml (Chris Wright),
- Bug fixes: RelaxNG schemas regexp fix (Robin Green), RelaxNG arch bug (Mark McLoughlin), large buffers bug fixes (Shigeki Sakamoto), error on out of memory condition (Shigeki Sakamoto), virshStrdup fix, non-root driver when using Xen bug (Richard Jones), use --strict-order when running dnsmasq (Daniel Berrange), virbr0 weirdness on restart (Mark McLoughlin), keep connection error messages (Richard Jones), increase QEmu read buffer on help (Daniel Berrange), rpm dependance on dnsmasq (Daniel Berrange), fix XML boot device syntax (Daniel Berrange), QEmu memory bug (Daniel Berrange), memory leak fix (Masayuki Sunou), fix compiler flags (Richard Jones), remove type ioemu on recent Xen HVM for paravirt drivers (Saori Fukuta), uninitialized string bug (Masayuki Sunou), allow init even if the daemon is not running, XML to config fix (Daniel Berrange)
- Improvements: add a special error class for the test module (Richard Jones), virConnectGetCapabilities on proxy (Richard Jones), allow network driver to decline usage (Richard Jones), extend error messages for upcoming remote access (Richard Jones), on_reboot support for QEmu (Daniel Berrange), save daemon output in a log file (Daniel Berrange), xenXMDomainDefineXML can override guest config (Hugh Brock), add attach-device and detach-device commands to virsh (Masayuki Sunou and Mark McLoughlin and Richard Jones), make virGetVersion case insensitive and Python bindings (Richard Jones), new scheduler API (Atsushi SAKAI), localizations updates, add logging option for virsh (Nobuhiro Itou), allow arguments to be passed to bootloader (Hugh Brock), increase the test suite (Daniel Berrange and Hugh Brock)
- Cleanups: Remove VIR_DRV_OPEN_QUIET (Richard Jones), disable xm_internal.c for Xen > 3.0.3 (Daniel Berrange), unused fields in _virDomain (Richard Jones), export __virGetDomain and __virGetNetwork for libvirtd only (Richard Jones), ignore old VNC config for HVM on recent Xen (Daniel Berrange), various code cleanups, -Werror cleanup (Hugh Brock)

### 0.2.2: Apr 17 2007

- Documentation: fix errors due to Amaya (with Simon Hernandez), virsh uses kB not bytes (Atsushi SAKAI), add command line help to qemud (Richard Jones), xenUnifiedRegister docs (Atsushi SAKAI), strings typos (Nikolay Sivov), ilocalization probalem raised by Thomas Canniot
- Bug fixes: virsh memory values test (Masayuki Sunou), operations without libvirt_qemud (Atsushi SAKAI), fix spec file (Florian La Roche, Jeremy Katz, Michael Schwendt), direct hypervisor call (Atsushi SAKAI), buffer overflow on qemu networking command (Daniel Berrange), buffer overflow in quemud (Daniel Berrange), virsh vcpupin bug (Masayuki Sunou), host PAE detections and strcuctures size (Richard Jones), Xen PAE flag handling (Daniel Berrange), bridged config configuration (Daniel Berrange), erroneous XEN_V2_OP_SETMAXMEM value (Masayuki Sunou), memory free error (Mark McLoughlin), set VIR_CONNECT_RO on read-only connections (S.Sakamoto), avoid memory explosion bug (Daniel Berrange), integer overflow for qemu CPU time (Daniel Berrange), QEMU binary path check (Daniel Berrange)
- Cleanups: remove some global variables (Jim Meyering), printf-style functions checks (Jim Meyering), better virsh error messages, increase compiler checkings and security (Daniel Berrange), virBufferGrow usage and docs, use calloc instead of malloc/memset, replace all sprintf by snprintf, avoid configure clobbering user's CTAGS (Jim Meyering), signal handler error cleanup (Richard Jones), iptables internal code claenup (Mark McLoughlin), unified Xen driver (Richard Jones), cleanup XPath libxml2 calls, IPTables rules tightening (Daniel Berrange),
- Improvements: more regression tests on XML (Daniel Berrange), Python bindings now generate exception in error cases (Richard Jones), Python bindings for vir*GetAutoStart (Daniel Berrange), handling of CD-Rom device without device name (Nobuhiro Itou), fix hypervisor call to work with Xen 3.0.5 (Daniel Berrange), DomainGetOSType for inactive domains (Daniel Berrange), multiple boot devices for HVM (Daniel Berrange),

### 0.2.1: Mar 16 2007

- Various internal cleanups (Richard Jones,Daniel Berrange,Mark McLoughlin)
- Bug fixes: libvirt_qemud daemon path (Daniel Berrange), libvirt config directory (Daniel Berrange and Mark McLoughlin), memory leak in qemud (Mark), various fixes on network support (Mark), avoid Xen domain zombies on device hotplug errors (Daniel Berrange), various fixes on qemud (Mark), args parsing (Richard Jones), virsh -t argument (Saori Fukuta), avoid virsh crash on TAB key (Daniel Berrange), detect xend operation failures (Kazuki Mizushima), don't listen on null socket (Rich Jones), read-only socket cleanup (Rich Jones), use of vnc port 5900 (Nobuhiro Itou), assorted networking fixes (Daniel Berrange), shutoff and shutdown mismatches (Kazuki Mizushima), unlimited memory handling (Atsushi SAKAI), python binding fixes (Tatsuro Enokura)
- Build and portability fixes: IA64 fixes (Atsushi SAKAI), dependancies and build (Daniel Berrange), fix xend port detection (Daniel Berrange), icompile time warnings (Mark), avoid const related compiler warnings (Daniel Berrange), automated builds (Daniel Berrange), pointer/int mismatch (Richard Jones), configure time selection of drivers, libvirt spec hacking (Daniel Berrange)
- Add support for network autostart and init scripts (Mark McLoughlin)
- New API virConnectGetCapabilities() to detect the virtualization capabilities of a host (Richard Jones)
- Minor improvements: qemud signal handling (Mark), don't shutdown or reboot domain0 (Kazuki Mizushima), QEmu version autodetection (Daniel Berrange), network UUIDs (Mark), speed up UUID domain lookups (Tatsuro Enokura and Daniel Berrange), support for paused QEmu CPU (Daniel Berrange), keymap VNC attribute support (Takahashi Tomohiro and Daniel Berrange), maximum number of virtual CPU (Masayuki Sunou), virtsh --readonly option (Rich Jones), python bindings for new functions (Daniel Berrange)
- Documentation updates especially on the XML formats

### 0.2.0: Feb 14 2007

- Various internal cleanups (Mark McLoughlin, Richard Jones, Daniel Berrange, Karel Zak)
- Bug fixes: avoid a crash in connect (Daniel Berrange), virsh args parsing (Richard Jones)
- Add support for QEmu and KVM virtualization (Daniel Berrange)
- Add support for network configuration (Mark McLoughlin)
- Minor improvements: regression testing (Daniel Berrange), localization string updates

### 0.1.11: Jan 22 2007

- Finish XML <-> XM config files support
- Remove memory leak when freeing virConf objects
- Finishing inactive domain support (Daniel Berrange)
- Added a Relax-NG schemas to check XML instances

### 0.1.10: Dec 20 2006

- more localizations
- bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains buffer overflow (Daniel Berrange), reference count bug when creating Xen domains (Daniel Berrange).
- improvements: support graphic framebuffer for Xen paravirt (Daniel Berrange), VNC listen IP range support (Daniel Berrange), support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange).

### 0.1.9: Nov 29 2006

- python bindings: release interpeter lock when calling C (Daniel Berrange)
- don't raise HTTP error when looking information for a domain
- some refactoring to use the driver for all entry points
- better error reporting (Daniel Berrange)
- fix OS reporting when running as non-root
- provide XML parsing errors
- extension of the test framework (Daniel Berrange)
- fix the reconnect regression test
- python bindings: Domain instances now link to the Connect to avoid garbage collection and disconnect
- separate the notion of maximum memory and current use at the XML level
- Fix a memory leak (Daniel Berrange)
- add support for shareable drives
- add support for non-bridge style networking configs for guests(Daniel Berrange)
- python bindings: fix unsigned long marshalling (Daniel Berrange)
- new config APIs virConfNew() and virConfSetValue() to build configs from scratch
- hot plug device support based on Michel Ponceau patch
- added support for inactive domains, new APIs, various associated cleanup (Daniel Berrange)
- special device model for HVM guests (Daniel Berrange)
- add API to dump core of domains (but requires a patched xend)
- pygrub bootloader information take over <os> information
- updated the localization strings

### 0.1.8: Oct 16 2006

- Bug for system with page size != 4k
- vcpu number initialization (Philippe Berthault)
- don't label crashed domains as shut off (Peter Vetere)
- fix virsh man page (Noriko Mizumoto)
- blktapdd support for alternate drivers like blktap (Daniel Berrange)
- memory leak fixes (xend interface and XML parsing) (Daniel Berrange)
- compile fix
- mlock/munlock size fixes (Daniel Berrange)
- improve error reporting

### 0.1.7: Sep 29 2006

- fix a memory bug on getting vcpu information from xend (Daniel Berrange)
- fix another problem in the hypercalls change in Xen changeset 86d26e6ec89b when getting domain information (Daniel Berrange)

### 0.1.6: Sep 22 2006

- Support for localization of strings using gettext (Daniel Berrange)
- Support for new Xen-3.0.3 cdrom and disk configuration (Daniel Berrange)
- Support for setting VNC port when creating domains with new xend config files (Daniel Berrange)
- Fix bug when running against xen-3.0.2 hypercalls (Jim Fehlig)
- Fix reconnection problem when talking directly to http xend

### 0.1.5: Sep 5 2006

- Support for new hypercalls change in Xen changeset 86d26e6ec89b
- bug fixes: virParseUUID() was wrong, netwoking for paravirt guestsi (Daniel Berrange), virsh on non-existent domains (Daniel Berrange), string cast bug when handling error in python (Pete Vetere), HTTP 500 xend error code handling (Pete Vetere and Daniel Berrange)
- improvements: test suite for SEXPR <-> XML format conversions (Daniel Berrange), virsh output regression suite (Daniel Berrange), new environ variable VIRSH_DEFAULT_CONNECT_URI for the default URI when connecting (Daniel Berrange), graphical console support for paravirt guests (Jeremy Katz), parsing of simple Xen config files (with Daniel Berrange), early work on defined (not running) domains (Daniel Berrange), virsh output improvement (Daniel Berrange

### 0.1.4: Aug 16 2006

- bug fixes: spec file fix (Mark McLoughlin), error report problem (with Hugh Brock), long integer in Python bindings (with Daniel Berrange), XML generation bug for CDRom (Daniel Berrange), bug whem using number() XPath function (Mark McLoughlin), fix python detection code, remove duplicate initialization errors (Daniel Berrange)
- improvements: UUID in XML description (Peter Vetere), proxy code cleanup, virtual CPU and affinity support + virsh support (Michel Ponceau, Philippe Berthault, Daniel Berrange), port and tty information for console in XML (Daniel Berrange), added XML dump to driver and proxy support (Daniel Berrange), extention of boot options with support for floppy and cdrom (Daniel Berrange), features block in XML to report/ask PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect operations when using read-only connection, large improvements to test driver (Daniel Berrange)
- documentation: spelling (Daniel Berrange), test driver examples.

### 0.1.3: Jul 11 2006

- bugfixes: build as non-root, fix xend access when root, handling of empty XML elements (Mark McLoughlin), XML serialization and parsing fixes (Mark McLoughlin), allow to create domains without disk (Mark McLoughlin),
- improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange), support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)
- documentation: augmented to cover hvm domains

### 0.1.2: Jul 3 2006

- headers include paths fixup
- proxy mechanism for unprivileged read-only access by httpu

### 0.1.1: Jun 21 2006

- building fixes: ncurses fallback (Jim Fehlig), VPATH builds (Daniel P. Berrange)
- driver cleanups: new entry points, cleanup of libvirt.c (with Daniel P. Berrange)
- Cope with API change introduced in Xen changeset 10277
- new test driver for regression checks (Daniel P. Berrange)
- improvements: added UUID to XML serialization, buffer usage (Karel Zak), --connect argument to virsh (Daniel P. Berrange),
- bug fixes: uninitialized memory access in error reporting, S-Expr parsing (Jim Fehlig, Jeremy Katz), virConnectOpen bug, remove a TODO in xs_internal.c
- documentation: Python examples (David Lutterkort), new Perl binding URL, man page update (Karel Zak)

### 0.1.0: Apr 10 2006

- building fixes: --with-xen-distdir option (Ronald Aigner), out of tree build and pkginfo cflag fix (Daniel Berrange)
- enhancement and fixes of the XML description format (David Lutterkort and Jim Fehlig)
- new APIs: for Node information and Reboot
- internal code cleanup: refactoring internals into a driver model, more error handling, structure sharing, thread safety and ref counting
- bug fixes: error message (Jim Meyering), error allocation in virsh (Jim Meyering), virDomainLookupByID (Jim Fehlig),
- documentation: updates on architecture, and format, typo fix (Jim Meyering)
- bindings: exception handling in examples (Jim Meyering), perl ones out of tree (Daniel Berrange)
- virsh: more options, create, nodeinfo (Karel Zak), renaming of some options (Karel Zak), use stderr only for errors (Karel Zak), man page (Andrew Puch)

### 0.0.6: Feb 28 2006

- add UUID lookup and extract API
- add error handling APIs both synchronous and asynchronous
- added minimal hook for error handling at the python level, improved the python bindings
- augment the documentation and tests to cover error handling

### 0.0.5: Feb 23 2006

- Added XML description parsing, dependance to libxml2, implemented the creation API virDomainCreateLinux()
- new APIs to lookup and name domain by UUID
- fixed the XML dump when using the Xend access
- Fixed a few more problem related to the name change
- Adding regression tests in python and examples in C
- web site improvement, extended the documentation to cover the XML format and Python API
- Added devhelp help for Gnome/Gtk programmers

### 0.0.4: Feb 10 2006

- Fix various bugs introduced in the name change

### 0.0.3: Feb 9 2006

- Switch name from 'libvir' to libvirt
- Starting infrastructure to add code examples
- Update of python bindings for completeness

### 0.0.2: Jan 29 2006

- Update of the documentation, web site redesign (Diana Fong)
- integration of HTTP xend RPC based on libxend by Anthony Liquori for most operations
- Adding Save and Restore APIs
- extended the virsh command line tool (Karel Zak)
- remove xenstore transactions (Anthony Liguori)
- fix the Python bindings bug when domain and connections where freed

### 0.0.1: Dec 19 2005

- First release
- Basic management of existing Xen domains
- Minimal autogenerated Python bindings