# Releases (2009)

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

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

### 0.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),
  Suppress 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 success 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 existence 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 program 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 explicit --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

- 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)
- Improvements:
  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 05 2009

- 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 weird 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 03 2009

- 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 accommodate 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

- 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

- 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 03 2009

- 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 03 2009

- 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

- 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)