<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>
    <h1>Releases (2014)</h1>
    <p>Here is the list of official releases made during the year 2014.
    A similar list for <a href="news-2013.html">2013</a> is also available.
    </p>
    <p>It is also possible to just use
    the <a href="downloads.html">GIT version or snapshot</a>,
    contact the mailing list and check
    the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a>
    to gauge progress.
    </p>

    <h3>1.2.11: Dec 13 2014</h3>
    <ul>
      <li>Features:<br/>
      Implement public API for virDomainGetFSInfo (Tomoki Sekiyama),<br/>
      Add support for the new throttle options (Matthias Gatto)<br/>
      </li>

      <li>Security:<br/>
      CVE-2014-8131: Fix possible deadlock and segfault in qemuConnectGetAllDomainStats() (Martin Kletzander),<br/>
      CVE-2014-7823: dumpxml: security hole with migratable flag (Eric Blake)<br/>
      </li>

      <li>Documentation:<br/>
      virsh.pod: Fix typo (John Ferlan),<br/>
      Fix typo in path for storage pool (John Ferlan),<br/>
      Fix missing curly braces (Hao Liu),<br/>
      Fix simple typo s/ a API/ an API/ (Martin Kletzander),<br/>
      getstats: improve documentation (Eric Blake),<br/>
      Use gender-neutral pronoun in hacking.html.in (Christophe Fergeau),<br/>
      network: fix some trivial typos in docs/formatnetwork.html (Chen Fan),<br/>
      virsh.pod: Fix the pool-define-as and pool-create-as description (John Ferlan),<br/>
      Fix a couple of typos on the storage pool html (John Ferlan),<br/>
      storage: fix rbd pool indentation (Cole Robinson),<br/>
      Create html documentation even if XHTML1 DTD is not available to validate (Ian Campbell),<br/>
      More html/docs changes from libvirt.h.in split (John Ferlan),<br/>
      conf: fix a comment typo in virDomainVideoDefaultRAM (Wang Rui),<br/>
      Correct invalid hyperlinks (Martin Kletzander),<br/>
      Fix missing slashes in XML examples (Luyao Huang),<br/>
      fix simple typo in TPM paragraph (Martin Kletzander),<br/>
      tests: fix documentation for mocking methods (Martin Kletzander),<br/>
      virsh: document block.n.allocation stat (Eric Blake),<br/>
      storage_driver: fix a comment typo (Chen Hanxiao),<br/>
      domain: Move docs for storage hosts under the &lt;source&gt; element (Peter Krempa),<br/>
      virsh: sync domdisplay help and manual (Martin Kletzander),<br/>
      fix a typo in formatdomain.html (Chen Fan),<br/>
      Remove references to unused libvirt-libvirt.html (Nehal J Wani),<br/>
      Document NVRAM behavior on transient domains (Michal Privoznik),<br/>
      Adjust contributor guidelines about curly brackets (Martin Kletzander),<br/>
      Fix API docs for header file re-organization (Daniel P. Berrange),<br/>
      fix mismatched ACL attribute name (Luyao Huang),<br/>
      Add documentation for compat mode. (Prerna Saxena),<br/>
      examples: add systemtap script to ease lock debugging (Martin Kletzander)<br/>
      </li>

      <li>Portability:<br/>
      Fix build on mingw (Ján Tomko),<br/>
      define NTF_{SELF,MASTER} if undefined (Guido Günther),<br/>
      build: fix mingw printing of pid (Eric Blake),<br/>
      build: fix unused variable in mingw (Eric Blake),<br/>
      libxl: Allow libxl to find pygrub binary. (Ian Campbell),<br/>
      build: fix build when not using dbus (Eric Blake),<br/>
      build: avoid 32-bit failure on older gcc (Eric Blake),<br/>
      build: fix build with older dbus headers (Eric Blake),<br/>
      maint: use portable shell (Eric Blake),<br/>
      qemuxml2argvtest: Run some test only on Linux (Michal Privoznik)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Avoid getting '-1:-1' in devices cgroup list (Cédric Bosdonnat),<br/>
      conf: goto error when value of max_sectors is too large (Luyao Huang),<br/>
      Ignore CPU features without a model for host-passthrough (Ján Tomko),<br/>
      Do not format CPU features without a model (Ján Tomko),<br/>
      qemu: bulk stats: Fix logic in monitor handling (Francesco Romani),<br/>
      dac: Add a new func to get DAC label of a running process (Luyao Huang),<br/>
      viriscsi: Need to sendtargets on Initiator IQN (John Ferlan),<br/>
      storage: Check stderr when matching parted output (Hao Liu),<br/>
      security: Manage SELinux labels on shared/readonly hostdev's (John Ferlan),<br/>
      tests: Fix sharable typo (John Ferlan),<br/>
      conf: forbid negative number in address(like controller, bus, slot...) (Luyao Huang),<br/>
      qemu: migration: Unlock vm on failed ACL check in protocol v2 APIs (Peter Krempa),<br/>
      network: don't allow multiple dhcp sections (Kyle DeFrancia),<br/>
      getstats: avoid memory leak on OOM (Eric Blake),<br/>
      util: check for an illegal character in a XML namespace prefix (Erik Skultety),<br/>
      qemu: snapshot: Forbid internal snapshot with passthrough devices (Shanzhi Yu),<br/>
      networkValidate: Disallow bandwidth in portgroups too (Michal Privoznik),<br/>
      qemu: process: Avoid uninitialized use two vars when reconnecting to vm (Peter Krempa),<br/>
      Fix handling of whitespae in preprocessor macros for API generator (Daniel P. Berrange),<br/>
      tests: Fix misplaced parenthesis in qemumonitorjsontest (Martin Kletzander),<br/>
      qemu: Fix virsh freeze when blockcopy storage file is removed (Erik Skultety),<br/>
      cpu: fix possible crash in getModels (Pavel Hrdina),<br/>
      leaseshelper: Skip entries missing expiry time on INIT action (Peter Krempa),<br/>
      storage: fix crash caused by no check return before set close (Luyao Huang),<br/>
      virsh: vol-upload disallow negative offset (Shanzhi Yu),<br/>
      parallels: fix compilation of parallels_storage.c (Dmitry Guryanov),<br/>
      Generate a MAC when loading a config instead of package update (Ján Tomko),<br/>
      Silently ignore MAC in NetworkLoadConfig (Ján Tomko),<br/>
      nwfilter: fix crash when adding non-existing nwfilter (Pavel Hrdina),<br/>
      Fix race condition in qemuGetProcessInfo (Eduardo Costa),<br/>
      libxl: Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      domain_conf: Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      virhook: Resolve Coverity NULL_RETURNS (John Ferlan),<br/>
      hotplug: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      storage: Add mixed fc_host/scsi_host duplicate adapter source checks (John Ferlan),<br/>
      conf: Add device-related code for panic devices (Martin Kletzander),<br/>
      conf: Add device-related code for TPM devices (Martin Kletzander),<br/>
      qemu: fix block{commit,copy} abort handling (Erik Skultety),<br/>
      qemu: Don't track quiesced state of FSs (Michal Privoznik),<br/>
      Fix usage of virReportSystemError (Jiri Denemark),<br/>
      network: Fix upgrade from libvirt older than 1.2.4 (Jiri Denemark),<br/>
      Resolve build breaker (John Ferlan),<br/>
      lxc: don't unmount subtree if it contains the source of the mount (Cédric Bosdonnat),<br/>
      virt-aa-helper wasn't running virErrorInitialize (Cédric Bosdonnat),<br/>
      storage: qemu: Fix security labelling of new image chain elements (Peter Krempa),<br/>
      storage: Add thread to refresh for createVport (John Ferlan),<br/>
      storage: Fix issue finding LU's when block doesn't exist (John Ferlan),<br/>
      rpc: do not fail if the pid of the connecting process is not set (Giuseppe Scrivano),<br/>
      util: don't log failure when older iptables lacks -w (Eric Blake),<br/>
      qemu: Really fix crash in tunnelled migration (Jiri Denemark),<br/>
      virsh: Fix msg: blockjob is aborted from another client (Erik Skultety),<br/>
      qemu: Fix crash in tunnelled migration (Jiri Denemark),<br/>
      vbox: fix a bug in _machineStateInactive (Yohan BELLEGUIC),<br/>
      qemu: Resolve Coverity UNINIT (John Ferlan),<br/>
      qemu: Fix get blkiodevtune for a disk that has been hot unplugged (Luyao Huang),<br/>
      Re-add use of locking with iptables/ip6tables/ebtables (Daniel P. Berrange),<br/>
      qemu: Don't try to parse -help for new QEMU (Jiri Denemark),<br/>
      qemu: Always set migration capabilities (Jiri Denemark),<br/>
      lxc: fix setmem effect on a running LXC machine (Erik Skultety),<br/>
      nwfilter: fix deadlock caused updating network device and nwfilter (Pavel Hrdina),<br/>
      qemuPrepareNVRAM: Save domain conf only if domain's persistent (Michal Privoznik),<br/>
      storage: Introduce 'managed' for the fchost parent (John Ferlan),<br/>
      storage: Ensure fc_host parent matches wwnn/wwpn (John Ferlan),<br/>
      storage: Check for valid fc_host parent at startup (John Ferlan),<br/>
      qemu: Resolve Coverity DEADCODE. (Matthias Gatto),<br/>
      qemu: Fix copy_paste_error in qemuBuildDriveStr. (Matthias Gatto),<br/>
      Do not crash on gluster snapshots with no host name (Ján Tomko),<br/>
      Fix virDomainChrEquals for spicevmc (Ján Tomko),<br/>
      qemu: fix domain startup failing with 'strict' mode in numatune (Wang Rui),<br/>
      lxc: don't setup cpuset.mems if memory mode in numatune is not 'strict' (Wang Rui),<br/>
      qemu: don't setup cpuset.mems if memory mode in numatune is not 'strict' (Wang Rui),<br/>
      Fix invalid log, misused option types and a typo (Hao Liu),<br/>
      phyp: Fix NULL dereference in phypConnectOpen (Martin Kletzander),<br/>
      nodeinfo: report error when failure in nodeSetMemoryParameters (Jincheng Miao),<br/>
      virnuma: add nodeset NULL check in virNumaSetupMemoryPolicy (Chen Fan),<br/>
      Fix build-time pkg-config files in VPATH (Jiri Denemark),<br/>
      qemu: Update fsfreeze status on domain state transitions (Michal Privoznik),<br/>
      network: fix call virNetworkEventLifecycleNew when networkStartNetwork fail (Luyao Huang),<br/>
      numa: fix assumption in virNumaNodeIsAvailable() (Martin Kletzander),<br/>
      Free job statistics from the migration cookie (Ján Tomko),<br/>
      virsh: Fix types for option bandwidth in block* (Hao Liu),<br/>
      qemuDomainUpdateDeviceConfig: Allow startupPolicy update (Michal Privoznik),<br/>
      remote: Fix memory leak in remoteConnectGetAllDomainStats (Peter Krempa),<br/>
      Require at least one console for LXC domain (Ján Tomko),<br/>
      Do not probe for power mgmt capabilities in lxc emulator (Ján Tomko),<br/>
      util: fix releasing pidfile in cleanup (Martin Kletzander),<br/>
      qemu: stop NBD server after successful migration (Weiwei Li),<br/>
      qemu: avoid rare race when undefining domain (Martin Kletzander),<br/>
      qemu: make sure capability probing process can start (Martin Kletzander),<br/>
      vbox: don't register NULL driver (Martin Kletzander),<br/>
      qemu: make advice from numad available when building commandline (Martin Kletzander)<br/>
      </li>

      <li>Improvements:<br/>
      network: Bring netdevs online later (Matthew Rosato),<br/>
      lxc: give RW access to /proc/sys/net/ipv[46] to containers (Cédric Bosdonnat),<br/>
      conf: Ignore device address for guestfwd channel (Martin Kletzander),<br/>
      maint: clean up the unused variable 'caps' in src/qemu/qemu_*.c (Wang Rui),<br/>
      parallels: report proper error in Create/Destroy/Suspend e.t.c. (Dmitry Guryanov),<br/>
      parallels: fix getJobResultHelper (Dmitry Guryanov),<br/>
      parallels: return PRL_RESULT from waitJob and getJobResult (Dmitry Guryanov),<br/>
      parallels: implement domainUndefine and domainUndefineFlags (Dmitry Guryanov),<br/>
      parallels: add cdroms support (Dmitry Guryanov),<br/>
      parallels: Add domainCreateWithFlags() function. (Alexander Burluka),<br/>
      parallels: added function virDomainIsActive() (Alexander Burluka),<br/>
      parallels: refactor parallelsDomainDefineXML (Dmitry Guryanov),<br/>
      parallels: create VMs and containers with sdk (Dmitry Guryanov),<br/>
      parallels: rewrite parallelsApplyConfig with SDK (Dmitry Guryanov),<br/>
      parallels: reimplement functions, which change domain state (Dmitry Guryanov),<br/>
      parallels: handle events from parallels server (Alexander Burluka),<br/>
      parallels: move parallelsDomNotFoundError to parallels_utils.h (Dmitry Guryanov),<br/>
      parallels: get domain info with SDK (Alexander Burluka),<br/>
      parallels: move IS_CT macro to parallels_utils.h (Dmitry Guryanov),<br/>
      build: Move check for XML::XPath into bootstrap (Martin Kletzander),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      lxc: always use virDomainNetGetActualBridgeName to get interface's bridge (Laine Stump),<br/>
      qemu: always use virDomainNetGetActualBridgeName to get interface's bridge (Laine Stump),<br/>
      qemu: setup tap devices for macTableManager='libvirt' (Laine Stump),<br/>
      network: setup bridge devices for macTableManager='libvirt' (Laine Stump),<br/>
      network: store network macTableManager setting in NetDef actual object (Laine Stump),<br/>
      network: save bridge name in ActualNetDef when actualType==network too (Laine Stump),<br/>
      conf: new network bridge device attribute macTableManager (Laine Stump),<br/>
      util: functions to manage bridge fdb (forwarding database) (Laine Stump),<br/>
      util: new functions for setting bridge and bridge port attributes (Laine Stump),<br/>
      getstats: add block.n.path stat (Eric Blake),<br/>
      getstats: start giving offline block stats (Eric Blake),<br/>
      rpc: Report proper close reason (Martin Kletzander),<br/>
      virsh: Don't reconnect after the command when disconnected (Martin Kletzander),<br/>
      storage: Fix printing/casting of uid_t/gid_t (Peter Krempa),<br/>
      virsh: Add adapter options for pool-{create|define}-as (John Ferlan),<br/>
      virsh: Add auth options for pool-{create|define}-as (John Ferlan),<br/>
      Report original error when QMP probing fails with new QEMU (Daniel P. Berrange),<br/>
      storage: backend: Log uid/gid when initializing storage file backend (Peter Krempa),<br/>
      qemu: process: Refactor reconnecting to qemu processes (Peter Krempa),<br/>
      drvbhyve: Automatically tear down guest domains on shutdown (Conrad Meyer),<br/>
      qemu: driver: Reload snapshots and managedsaves prior to reconnecting (Peter Krempa),<br/>
      leaseshelper: Fix incorrect alignment of a switch case (Peter Krempa),<br/>
      network: dnsmasq: Don't format lease file path (Peter Krempa),<br/>
      leaseshelper: Refactor control flow (Peter Krempa),<br/>
      leaseshelper: improvements to support all events (Nehal J Wani),<br/>
      cpu-driver: Fix the cross driver function call (Daniel Hansel),<br/>
      qemu_migration: Precreate missing storage (Michal Privoznik),<br/>
      qemu_migration: Send disk sizes to the other side (Michal Privoznik),<br/>
      qemuMonitorJSONBlockStatsUpdateCapacity: Don't skip disks (Michal Privoznik),<br/>
      storage: Introduce storagePoolLookupByTargetPath (Michal Privoznik),<br/>
      Replace virDomainSnapshotFree with virObjectUnref (John Ferlan),<br/>
      Replace virInterfaceFree with virObjectUnref (John Ferlan),<br/>
      Replace virNWFilterFree with virObjectUnref (John Ferlan),<br/>
      Replace virSecretFree with virObjectUnref (John Ferlan),<br/>
      Replace virStreamFree with virObjectUnref (John Ferlan),<br/>
      Replace virStoragePoolFree with virObjectUnref (John Ferlan),<br/>
      Replace virStorageVolFree with virObjectUnref (John Ferlan),<br/>
      Replace virNodeDeviceFree with virObjectUnref (John Ferlan),<br/>
      Replace virNetworkFree with virObjectUnref (John Ferlan),<br/>
      Replace virDomainFree with virObjectUnref (John Ferlan),<br/>
      rpc: Replace virXXXFree with virObjectUnref (John Ferlan),<br/>
      libvirt.c: Move virDomainGetFSInfo to libvirt-domain.c (Michal Privoznik),<br/>
      conf: replace call to virNetworkFree() with virObjectUnref() (Laine Stump),<br/>
      build, docs: Let make see the dependencies for html/*.html (Martin Kletzander),<br/>
      storage: Move and rename getVhbaSCSIHostParent (John Ferlan),<br/>
      conf: Don't redefine virDomainTPMDefPtr (Martin Kletzander),<br/>
      qemu: Make pid available for security managers in qemuProcessAttach (Luyao Huang),<br/>
      qemu: set jobinfo type to FAILED if job is failed in qemuMigrationRun (Wang Rui),<br/>
      qemu: set jobinfo type to CANCELLED if migration is cancelled in all conditions (Wang Rui),<br/>
      util: Avoid calling closedir(NULL) (Jiri Denemark),<br/>
      dbus: fix arrays of bools (Eric Blake),<br/>
      qemu: add the missing jobinfo type in qemuDomainGetJobInfo (Wang Rui),<br/>
      lxc: be more patient while resolving symlinks (Cédric Bosdonnat),<br/>
      virt-aa-helper: /etc/libvirt-sandbox/services isn't restricted (Cédric Bosdonnat),<br/>
      qemu-command: introduce new vgamem attribute for QXL video device (Pavel Hrdina),<br/>
      qemu-command: use vram attribute for all video devices (Pavel Hrdina),<br/>
      caps: introduce new QEMU capability for vgamem_mb device property (Pavel Hrdina),<br/>
      QXL: fix setting ram and vram values for QEMU QXL device (Pavel Hrdina),<br/>
      video: cleanup usage of vram attribute and update documentation (Pavel Hrdina),<br/>
      internal: add macro to round value to the next closest power of 2 (Pavel Hrdina),<br/>
      virsh: expose virDomainGetFSInfo (Tomoki Sekiyama),<br/>
      qemu: add test for qemuAgentGetFSInfo (Tomoki Sekiyama),<br/>
      qemu: Implement the qemu driver for virDomainGetFSInfo (Tomoki Sekiyama),<br/>
      remote: Implement the remote protocol for virDomainGetFSInfo (Tomoki Sekiyama),<br/>
      qemu: Emit the guest agent lifecycle event (Peter Krempa),<br/>
      examples: Add support for the guest agent lifecycle event (Peter Krempa),<br/>
      event: Add guest agent lifecycle event (Peter Krempa),<br/>
      spec: Automatically apply all patches with git (Jiri Denemark),<br/>
      qemu: process: Refresh virtio channel guest state when connecting to mon (Peter Krempa),<br/>
      qemu: chardev: Extract more information about character devices (Peter Krempa),<br/>
      libxl: destroy domain in migration finish phase on failure (Jim Fehlig),<br/>
      libxl: start domain paused on migration dst (Jim Fehlig),<br/>
      libxl: acquire job in migration finish phase (Jim Fehlig),<br/>
      libxl: Receive migration data in a thread (Jim Fehlig),<br/>
      storage: rbd: Implement support for passing config file option (Peter Krempa),<br/>
      storage: rbd: qemu: Add support for specifying internal RBD snapshots (Peter Krempa),<br/>
      storage: Allow parsing of RBD backing strings when building backing chain (Peter Krempa),<br/>
      util: storagefile: Split out parsing of NBD string into a separate func (Peter Krempa),<br/>
      util: split out qemuParseRBDString into a common helper (Peter Krempa),<br/>
      tests: Reflow the expected output from RBD disk test (Peter Krempa),<br/>
      qemu: Refactor qemuBuildNetworkDriveURI to take a virStorageSourcePtr (Peter Krempa),<br/>
      util: storage: Copy hosts of a storage file only if they exist (Peter Krempa),<br/>
      util: storage: Add notice for extension of struct virStorageSource (Peter Krempa),<br/>
      util: buffer: Clarify scope of the escape operation in virBufferEscape (Peter Krempa),<br/>
      test: virstoragetest: Add testing of network disk details (Peter Krempa),<br/>
      qemu: Add handling for VSERPORT_CHANGE event (Peter Krempa),<br/>
      conf: Add channel state for virtio channels to the XML (Peter Krempa),<br/>
      qemu: monitor: Rename and improve qemuMonitorGetPtyPaths (Peter Krempa),<br/>
      test: xml2xml: Print full filenames if xml2xml test fails (Peter Krempa),<br/>
      conf: Annotate source enums for character device struct members (Peter Krempa),<br/>
      qemu: process: report useful error if alias formatting fails (Peter Krempa),<br/>
      qemu: Drop OVMF whitelist (Michal Privoznik),<br/>
      qemu: Support OVMF on armv7l aarch64 guests (Michal Privoznik),<br/>
      maint: forbid 'int foo = true' (Eric Blake),<br/>
      virdbus: don't force users to pass int for bool values (Eric Blake),<br/>
      storage: wrap storage_driver.c to 80 columns (Chen Hanxiao),<br/>
      network: Add network bandwidth support to ethernet interfaces (Anirban Chakraborty),<br/>
      qemu: Add tests for new blkdeviotune arguments (John Ferlan),<br/>
      qemu: Add checks for blkdeviotune 'size_iops_sec' and adjust error (John Ferlan),<br/>
      bracket-spacing: Add syntax-check for unnecessary curly brackets (Martin Kletzander),<br/>
      bracket-spacing-check: Print out more specific error message (Martin Kletzander),<br/>
      bracket-spacing: Remove pointless cycles (Martin Kletzander),<br/>
      bracket-spacing: Don't modify current line (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in tests/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in tools/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in rest of src/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in rest of src/[o-u]*/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in rest of src/[a-n]*/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/vbox/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/util/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/test/test_driver.c (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/storage/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/qemu/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/node_device/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/hyperv/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/conf/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/vmx/vmx.c (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in rest of src/esx/ (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in src/esx/esx_driver.c (Martin Kletzander),<br/>
      Remove unnecessary curly brackets in daemon/ and examples/ (Martin Kletzander),<br/>
      virsh: Convert EDIT_NOT_CHANGED macro to do-while block. (Martin Kletzander),<br/>
      virt-aa-helper: Trick invalid syntax-check (Martin Kletzander),<br/>
      virsh: Error out if VSH_OT_STRING option has VSH_OFLAG_REQ flag (Martin Kletzander),<br/>
      virsh: Enforce proper ordering of options (Martin Kletzander),<br/>
      virsh: Reorder some options (Martin Kletzander),<br/>
      drvbhyve: Use boot-order for grub-bhyve boot device (Conrad Meyer),<br/>
      drvbhyve: Clean-up some used ATTRIBUTE_UNUSEDs. (Conrad Meyer),<br/>
      storage: Introduce virStoragePoolSaveConfig (John Ferlan),<br/>
      storage: Don't use a stack copy of the adapter (John Ferlan),<br/>
      bhyvexml2argv: Add test for grub console support (Conrad Meyer),<br/>
      bhyve: Add console support for grub-bhyve bootloader (Conrad Meyer),<br/>
      bhyve: Probe grub-bhyve for --cons-dev capability (Conrad Meyer),<br/>
      bhyvexml2argv: Add tests for domain-configured bootloader, args (Conrad Meyer),<br/>
      domaincommon.rng: Add 'bootloader' to os=hvm schema for Bhyve (Conrad Meyer),<br/>
      bhyvexml2argv: Add loader argv tests. (Conrad Meyer),<br/>
      bhyve: Support /domain/bootloader configuration for non-FreeBSD guests. (Conrad Meyer),<br/>
      Display nicer error message for unsupported chardev hotplug (Ján Tomko),<br/>
      virsh: Add bps_max and friends to virsh (Matthias Gatto),<br/>
      qemu: Add bps_max and friends to qemu command generation (Matthias Gatto),<br/>
      qemu: Add bps_max and friends QMP suport (Matthias Gatto),<br/>
      qemu: Add bps_max and friends qemu driver (Matthias Gatto),<br/>
      qemu: Add Qemu capability for bps_max and friends (Matthias Gatto),<br/>
      qemu: Modify the structure _virDomainBlockIoTuneInfo. (Matthias Gatto),<br/>
      cpu_conf: Allow specification of 'units' for @memory on numa nodes. (Prerna Saxena),<br/>
      conf: Expose virDomainParseMemory for use outside domain_conf (Prerna Saxena),<br/>
      esx: Simplify VI (vSphere) API and VMware product version handling (Matthias Bolte),<br/>
      domain_conf: Use virDomainParseMemory more widely (Michal Privoznik),<br/>
      Transform VIR_ERROR into VIR_WARN in detect_scsi_host_caps (Cédric Bosdonnat),<br/>
      vbox: Remove useless condition branches (Martin Kletzander),<br/>
      Remove use of networkPrivateData from netcf driver (Daniel P. Berrange),<br/>
      Remove use of networkPrivateData from network driver (Daniel P. Berrange),<br/>
      Remove use of storagePrivateData from storage driver (Daniel P. Berrange),<br/>
      Update Test driver to always use privateData (Daniel P. Berrange),<br/>
      Update Parallels driver to always use privateData (Daniel P. Berrange),<br/>
      Remove abuse of networkPrivateData in phyp driver (Daniel P. Berrange),<br/>
      Move phyp internal info out of the header file (Daniel P. Berrange),<br/>
      Update Hyper-V driver to always use privateData (Daniel P. Berrange),<br/>
      Update ESX driver to always use privateData (Daniel P. Berrange),<br/>
      Update remote driver to always use privateData (Daniel P. Berrange),<br/>
      Clean up remote driver connection open code (Daniel P. Berrange),<br/>
      Test: Add a testcase for PowerPC compat mode cpu specification. (Prerna Saxena),<br/>
      PowerPC:Improve PVR handling to fall back to cpu generation. (Prerna Saxena),<br/>
      PowerPC : Add support for launching VM in 'compat' mode. (Prerna Saxena),<br/>
      Cpu: Add support for Power LE Architecture. (Prerna Saxena),<br/>
      gitignore: use wildcard for configure's temporary files (Martin Kletzander),<br/>
      virnetdevbandwidth: Include virutil.h (Michal Privoznik),<br/>
      qemu: Allow use of iothreads for virtio ccw disk definitions (Boris Fiuczynski),<br/>
      qemu: Correct disk type checking logic for iothreads (Boris Fiuczynski),<br/>
      virsh: fix net-dhcp-leases no output in quiet mode (Luyao Huang),<br/>
      numa: split util/ and conf/ and support non-contiguous nodesets (Martin Kletzander),<br/>
      add temporary compilation files into .gitignore (Martin Kletzander),<br/>
      Iface: disallow network tuning in session mode globally (Erik Skultety),<br/>
      qemu: revert patch - bandwidth tuning in session mode (Erik Skultety),<br/>
      private.syms: Export virDomainNumatuneSpecifiedMaxNode (Michal Privoznik),<br/>
      virnuma: Add some more comments (Michal Privoznik),<br/>
      Memory: Use consistent type for all memory elements. (Prerna Saxena),<br/>
      virnuma: use virNumaNodesetIsAvailable checking nodeset in virNumaSetupMemoryPolicy (Chen Fan),<br/>
      numatune: add check for numatune nodeset range (Chen Fan),<br/>
      bitmap: add virBitmapLastSetBit for finding the last bit position of bitmap (Chen Fan),<br/>
      virsh: don't list unknown domains (Martin Kletzander),<br/>
      lxc: improve error message for invalid blkiotune settings (Martin Kletzander),<br/>
      qemu: improve error message for invalid blkiotune settings (Martin Kletzander),<br/>
      util: Introduce virPidFileForceCleanupPath (Martin Kletzander)<br/>
      </li>

      <li>Cleanups:<br/>
      Remove left over debug in hvsupport.pl script (Daniel P. Berrange)<br/>
      </li>
    </ul>

    <h3>1.2.10: Nov 03 2014</h3>
    <ul>
      <li>Features:<br/>
      vbox: various drivers improvements (Taowei Luo),<br/>
      libxl: various drivers improvements (Stefan Bader, Jim Fehlig),<br/>
      Internal driver refactoring (Daniel P. Berrange)<br/>
      </li>

      <li>Documentation:<br/>
      virsh: Adjust the text in man page regarding qemu-attach (John Ferlan),<br/>
      HACKING: Regenerate after recent change (Peter Krempa),<br/>
      fix an improper git browsable address (Chen Hanxiao),<br/>
      Mention repository locations in contributor guidelines (Martin Kletzander),<br/>
      apps: Update references to virt-p2v and virt-v2v. (Richard W.M. Jones),<br/>
      libvirt: Document UNDEFINE_NVRAM in UndefineFlags doc (Cole Robinson),<br/>
      conf: fix a wrong comment in virSocketAddrNumericFamily() (Chen Fan),<br/>
      virsh: man: Fix description of --live/--config usage (Peter Krempa),<br/>
      qemu: add short document on qemu event handlers (Laine Stump),<br/>
      fix a typo in drvlxc (Chen Hanxiao)<br/>
      </li>

      <li>Portability:<br/>
      mingw: fix build failure (Pavel Hrdina),<br/>
      domain: fix parsing of memory tunables on 32-bit machines (Eric Blake),<br/>
      virnetdev: stub virNetDev{Add,Del}Multi on FreeBSD (Roman Bogorodskiy),<br/>
      Renamed internal __mon_yday into mon_yday to avoid conflicts (Cédric Bosdonnat),<br/>
      Fix build-time pkg-config files in VPATH (Jiri Denemark),<br/>
      Fix build with older libcurl (Ján Tomko),<br/>
      vbox: remove unused code that causes build failures (Martin Kletzander),<br/>
      Makefile: Fix build without driver modules (Michal Privoznik),<br/>
      build: fix build on non-Linux (Eric Blake),<br/>
      qemu: monitor: Avoid shadowing variable "devname" on FreeBSD. Again. (Peter Krempa)<br/>
      </li>

      <li>Bug Fixes:<br/>
      hotplug: fix char device detach (Pavel Hrdina),<br/>
      vbox_storage: fix coverity issue with overwriting value (Pavel Hrdina),<br/>
      Relax duplicate SCSI host pool checking (Ján Tomko),<br/>
      qemu: Release nbd port from migrationPorts instead of remotePorts (weiwei li),<br/>
      libxl: fix double-free of libxl_domain_build_info (Jim Fehlig),<br/>
      Reject live update of offloading options (Ján Tomko),<br/>
      conf: forbid negative values in virDomainParseScaledValue (Martin Kletzander),<br/>
      virsh: Fix memory leak in cmdNetworkDHCPLeases (Luyao Huang),<br/>
      virutil: fix virGetSCSIHostNumber stub return type (Roman Bogorodskiy),<br/>
      virnetdev: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virnetdev: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virnetdev: Resolve Coverity DEADCODE (John Ferlan),<br/>
      storage: Fix crash when parsing backing store URI with schema (Peter Krempa),<br/>
      src/Makefile.am: Add forgotten backslash (Michal Privoznik),<br/>
      storage_conf: Resolve libvirtd crash matching scsi_host (John Ferlan),<br/>
      qemu-attach: Assign device aliases (John Ferlan),<br/>
      hotplug: Check for alias in net detach (John Ferlan),<br/>
      hotplug: Check for alias in chrdev detach (John Ferlan),<br/>
      hotplug: Check for alias in hostdev detach (John Ferlan),<br/>
      hotplug: Check for alias in disk detach (John Ferlan),<br/>
      hotplug: Check for alias in controller detach (John Ferlan),<br/>
      remote: fix jump depends on uninitialised value (Jincheng Miao),<br/>
      qemu: forbid snapshot-delete --children-only on external snapshot (Eric Blake),<br/>
      util: eliminate "use after free" in callers of virNetDevLinkDump (Laine Stump),<br/>
      vbox: network: make sure driver is not NULL in virRegisterNetworkDriver (Shanzhi Yu),<br/>
      hyperv: avoid query memleaks on failure (Eric Blake),<br/>
      qemu: Disallow NUMA/network tuning for session mode (Erik Skultety),<br/>
      qemu: restore: Fix restoring of VM when the restore hook returns empty XML (Peter Krempa),<br/>
      Fix cast errors with clang (Roman Bogorodskiy),<br/>
      qemu: unref cfg after TerminateMachine has been called (Martin Kletzander),<br/>
      qemu: x86_64 is good enough for i686 (Lubomir Rintel),<br/>
      qemu: move setting emulatorpin ahead of monitor showing up (Zhou yimin),<br/>
      tests: fix incorrect caps for shmem-invalid-size, shmem-small-size (Maxime Leroy),<br/>
      conf: tests: fix virDomainNetDefFormat for vhost-user in client mode (Maxime Leroy),<br/>
      libxl: add missing 'break' from commit 1298daca (Jim Fehlig),<br/>
      conf: fix an memory leak in virSocketAddrIsNumericLocalhost() (Chen Fan),<br/>
      virsh: domain: Use global constant for XML file size limit (Peter Krempa),<br/>
      Fix leftover typo '&amp;' -&gt; '&amp;&amp;' (Martin Kletzander),<br/>
      qemu: save domain status after set domain's numa parameters (Shanzhi Yu),<br/>
      qemu: call qemuDomainObjBeginJob/qemuDomainObjEndJob in qemuDomainSetInterfaceParameters (Shanzhi Yu),<br/>
      qemu: save domain status after set the blkio parameters (Shanzhi Yu),<br/>
      security_selinux: Don't relabel /dev/net/tun (Michal Privoznik),<br/>
      qemu: Remove possible NULL deref in debug output (John Ferlan),<br/>
      qemu: Remove need for virConnectPtr in hotunplug detach host, net (John Ferlan),<br/>
      qemu: Fix hot unplug of SCSI_HOST device (John Ferlan),<br/>
      util: Prepare URI formatting for libxml2 &gt;= 2.9.2 (Martin Kletzander),<br/>
      qemu: Don't compare CPU against host for TCG (Cole Robinson),<br/>
      qemu: Fix updating balloon period in live XML (Erik Skultety),<br/>
      qemu: Fix updating bandwidth limits in live XML (Erik Skultety),<br/>
      qemu: json: Fix missing break in error reporting function (Peter Krempa)<br/>
      </li>

      <li>Improvements:<br/>
      Match scsi_host pools by parent address first (Ján Tomko),<br/>
      libxl: Support user-specified &lt;emulator&gt; (Jim Fehlig),<br/>
      Spell TIOCSCTTY right in the error message (Ján Tomko),<br/>
      Teach virt-aa-helper to use TEMPLATE.qemu if the domain is kvm or kqemu (Cédric Bosdonnat),<br/>
      qemu: better error message when block job can't succeed (Eric Blake),<br/>
      test: Add test to verify helpers used for backing file name parsing (Peter Krempa),<br/>
      maint: add syntax check to prohibit static zero init (Eric Blake),<br/>
      maint: avoid static zero init in drivers (Eric Blake),<br/>
      maint: avoid static zero init in helpers (Eric Blake),<br/>
      maint: avoid static zero init in tests (Eric Blake),<br/>
      maint: avoid static zero init in tools (Eric Blake),<br/>
      maint: avoid static zero init in core files (Eric Blake),<br/>
      audit: use bool for audit log choice (Eric Blake),<br/>
      virutil: Introduce virGetSCSIHostNameByParentaddr (John Ferlan),<br/>
      virutil: Introduce virGetSCSIHostNumber (John Ferlan),<br/>
      vbox: Rewrite vboxStorageVolGetPath (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolGetXMLDesc (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolGetInfo (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolDelete (Taowei Luo),<br/>
      vbox: Make IMediumAttachment work with vbox2.2 and 3.0 (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolCreateXML (Taowei Luo),<br/>
      vbox: Make CreateHardDisk support all vbox versions (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolLookupByPath (Taowei Luo),<br/>
      vbox: Make FindMedium support old vbox versions (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolLookupByKey (Taowei Luo),<br/>
      vbox: Rewrite vboxStorageVolLookupByName (Taowei Luo),<br/>
      vbox: Rewrite vboxStoragePoolListVolumes (Taowei Luo),<br/>
      vbox: Rewrite vboxStoragePoolNumOfVolumes (Taowei Luo),<br/>
      vbox: Rewrite vbox-independent functions (Taowei Luo),<br/>
      vbox: move common codes to vbox_common.h (Taowei Luo),<br/>
      vbox: Remove VBOX_OBJECT_CHECK macro (Taowei Luo),<br/>
      vbox: Fix copyright mistake (Taowei Luo),<br/>
      virsh: Improve the job type reported of virsh cmd blockcommit (Shanzhi Yu),<br/>
      qemu_agent: Produce more readable error messages (Michal Privoznik),<br/>
      qemu: change macvtap multicast list in response to NIC_RX_FILTER_CHANGED (Tony Krowiak),<br/>
      util: Functions to update host network device's multicast filter (Tony Krowiak),<br/>
      tests: Add SELINUX_LIBS to fix viridentitytest linker bug (Julio Faracco),<br/>
      Add new driver-*.h files to DRIVER_SOURCES (Daniel P. Berrange),<br/>
      Fix indentation of sysinfo data (Daniel P. Berrange),<br/>
      Fix preprocessor indentation in libvirt.h.in (Daniel P. Berrange),<br/>
      Move virConnect related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virDomain related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virEvent related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virStoragePool/Vol related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virStream related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virSecret related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virNodeDevice related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virNWFilter related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virInterface related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virNetwork related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virDomainSnapshot related APIs out of libvirt.h.in (Daniel P. Berrange),<br/>
      Move virConnect/virNode related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virDomain related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Make virTypedParameterValidateSet non-static (Daniel P. Berrange),<br/>
      Move virStorage{Pool,Vol} related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virStream related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virSecret related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virNodeDevice related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virNWFilter related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virInterface related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virNetwork related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Move virDomainSnapshot related APIs out of libvirt.c (Daniel P. Berrange),<br/>
      Split driver.h into multiple parts (Daniel P. Berrange),<br/>
      Rename virDriver to virHypervisorDriver (Daniel P. Berrange),<br/>
      qemu: migration: Make check for empty hook XML robust (Peter Krempa),<br/>
      util: string: Add helper to check whether string is empty (Peter Krempa),<br/>
      Add support for /run/initctl (Rick Harris),<br/>
      qemu: Convert qemuDomainUpdateDeviceConfig to typecasted enum (Peter Krempa),<br/>
      qemu: Convert qemuDomainDetachDeviceConfig to typecasted enum (Peter Krempa),<br/>
      qemu: Convert qemuDomainAttachDeviceConfig to typecasted enum (Peter Krempa),<br/>
      qemu: Convert qemuDomainUpdateDeviceLive to typecasted enum (Peter Krempa),<br/>
      qemu: Convert qemuDomainDetachDeviceLive to typecasted enum (Peter Krempa),<br/>
      conf: Move definition of virDomainParseMemory (Peter Krempa),<br/>
      Implement empty post parse callbacks for all drivers (Peter Krempa),<br/>
      qemu: monitor: Add functions for object hot-add/remove (Peter Krempa),<br/>
      util: json: Add option to skip adding a JSON object if it is NULL (Peter Krempa),<br/>
      util: json: Improve handling and docs for adding JSON objects (Peter Krempa),<br/>
      util: json: Split out code to create json value objects (Peter Krempa),<br/>
      qemu: hotplug: Use typecasted switch statement when plugging new devices (Peter Krempa),<br/>
      conf: Add compile time check that devices were checked for ABI stability (Peter Krempa),<br/>
      conf: shmem: Add ABI stability check (Peter Krempa),<br/>
      conf: Improve adding of new address types (Peter Krempa),<br/>
      conf: Check whether migration_address is localhost (Chen Fan),<br/>
      conf: add check if migration_host is a localhost address (Chen Fan),<br/>
      migration: add migration_host support for IPv6 address without brackets (Chen Fan),<br/>
      Introduce virStringStripIPv6Brackets (Ján Tomko),<br/>
      conf: improve the comments for "xmlopt" (Wang Rui),<br/>
      libxl: Add function to determine device model type (Jim Fehlig),<br/>
      Xen: Defer setting default vram value to Xen drivers (Jim Fehlig),<br/>
      libxl: Copy user-specified keymap to libxl build info struct (Jim Fehlig),<br/>
      esx: Implement virDomainScreenshot using libcurl stream driver (Matthias Bolte),<br/>
      esx: Add libcurl based stream driver (Matthias Bolte),<br/>
      qemu: change macvtap device MAC address in response to NIC_RX_FILTER_CHANGED (Laine Stump),<br/>
      qemu: setup infrastructure to handle NIC_RX_FILTER_CHANGED event (Laine Stump),<br/>
      qemu: qemuMonitorQueryRxFilter - retrieve guest netdev rx-filter (Laine Stump),<br/>
      util: define virNetDevRxFilter and basic utility functions (Laine Stump),<br/>
      network: set interface actual trustGuestRxFilters from network/portgroup (Laine Stump),<br/>
      conf: add trustGuestRxFilters attribute to network and domain interface (Laine Stump),<br/>
      maint: update .mailmap (Eric Blake),<br/>
      Include .libs in libdir in source tree pkg-config files (Ján Tomko),<br/>
      minor shmem clean-ups (Martin Kletzander),<br/>
      qemu: Build command line for ivshmem device (Martin Kletzander),<br/>
      qemu: add capability probing for ivshmem device (Maxime Leroy),<br/>
      docs, conf, schema: add support for shmem device (Martin Kletzander),<br/>
      qemu: support nospace reason in io error event (Eric Blake),<br/>
      qemu_command: Split qemuBuildCpuArgStr (Cole Robinson),<br/>
      configure: improve misleading libnl3-devel missing error message (Shanzhi Yu),<br/>
      qemu: Improve domainSetTime error info report (Shanzhi Yu),<br/>
      vbox: Rewrite vboxNetworkGetXMLDesc (Taowei),<br/>
      vbox: Rewrite vboxNetworkCreate (Taowei),<br/>
      vbox: Rewrite vboxNetworkUndefineDestroy (Taowei),<br/>
      vbox: Rewrite vboxNetworkDefineCreateXML (Taowei),<br/>
      vbox: Rewrite vboxNetworkLookupByName (Taowei),<br/>
      vbox: Rewrite vboxNetworkLookupByUUID (Taowei),<br/>
      vbox: Rewrite vboxConnectListDefinedNetworks (Taowei),<br/>
      vbox: Rewrite vboxConnectNumOfDefinedNetworks (Taowei),<br/>
      vbox: Rewrite vboxConnectListNetworks (Taowei),<br/>
      vbox: Rewrite vboxConnectNumOfNetworks (Taowei),<br/>
      vbox: Rewrite vboxNetworkClose (Taowei),<br/>
      vbox: Rewrite vboxNetworkOpen (Taowei),<br/>
      vbox: Interfaces for register per parties (Taowei),<br/>
      Add virCgroupTerminateMachine stub (Ján Tomko),<br/>
      Make editor used for 'virsh edit' configurable (Guido Günther),<br/>
      qemu: use systemd's TerminateMachine to kill all processes (Guido Günther),<br/>
      maint: Prohibit "devname" by a syntax check rules (Peter Krempa),<br/>
      qemu: bulk stats: add block allocation information (Francesco Romani),<br/>
      qemu: monitor: Add helper function to fill physical/virtual image size (Peter Krempa)<br/>
      </li>

      <li>Cleanups:<br/>
      vbox: Remove unused things in vbox_tmpl.c (Taowei Luo),<br/>
      Cleanup maintainers list (Jiri Denemark)<br/>
      </li>
    </ul>

    <h3>1.2.9: Oct 01 2014</h3>
    <ul>
      <li>Features:<br/>
      Introduce virNodeAllocPages (Michal Privoznik),<br/>
      event: introduce new event for tunable values (Pavel Hrdina),<br/>
      add migration support for OpenVZ driver (Hongbin Lu),<br/>
      Add support for fetching statistics of completed jobs (Jiri Denemark)<br/>
      </li>

      <li>Security:<br/>
      CVE-2014-3633: qemu: blkiotune: Use correct definition when looking up disk (Peter Krempa),<br/>
      CVE-2014-3657: domain_conf: fix domain deadlock (Pavel Hrdina)<br/>
      </li>

      <li>Documentation:<br/>
      LXC: emphasis uid start of idmap only accept '0' in docs (Chen Hanxiao),<br/>
      specify vhost-net instead of net-vhost (Jianwei Hu),<br/>
      LXC: add HOME environment variable docs (Chen Hanxiao),<br/>
      update zfs documentation (Roman Bogorodskiy),<br/>
      man: virsh: Add docs for supported stats groups (Peter Krempa),<br/>
      lib: Document that virConnectGetAllDomainStats may omit some stats fields (Peter Krempa),<br/>
      lib: De-duplicate stats group documentation for all stats functions (Peter Krempa),<br/>
      util: Fix copy-paste error in virXPathLongLong description (Martin Kletzander),<br/>
      formatdomain: Update &lt;loader/&gt; example to match the rest (Michal Privoznik),<br/>
      virsh: desc command in --title mode mentions description instead of title (Peter Krempa),<br/>
      fix encryption format attribute in example (Ján Tomko)<br/>
      </li>

      <li>Portability:<br/>
      qemu: monitor: Avoid shadowing variable "devname" on FreeBSD (Peter Krempa),<br/>
      lxc_monitor_protocol: Redefine xdr_uint64_t if needed (Michal Privoznik),<br/>
      Fix build without polkit (Pavel Hrdina),<br/>
      Fix MinGW build (Pavel Hrdina),<br/>
      Fix build in qemu_command (Roman Bogorodskiy),<br/>
      Fix build in qemu_capabilities (Roman Bogorodskiy),<br/>
      bhyve: tests: fix build (Roman Bogorodskiy),<br/>
      virprocess: Extend list of platforms for setns wrapper (Michal Privoznik),<br/>
      vircgroup: Fix broken builds without cgroups (John Ferlan),<br/>
      util/virprocess.c: fix MinGW build (Pavel Hrdina),<br/>
      blockjob: avoid 32-bit compilation warning (Eric Blake)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Allow setting migration max downtime any time (Chris St. Pierre),<br/>
      qemu: monitor: return block stats data as a hash to avoid disk mixup (Peter Krempa),<br/>
      Also filter out non-migratable features out of host-passthrough (Ján Tomko),<br/>
      Don't verify CPU features with host-passthrough (Ján Tomko),<br/>
      Fix crash cpu_shares change event crash on domain startup (Ján Tomko),<br/>
      storage: Fix logical pool fmt type (Erik Skultety),<br/>
      virsh: Fix help message of allocpages (Tomoki Sekiyama),<br/>
      qemu: remove capabilities.monitor.sock when done (Guido Günther),<br/>
      conf: report error in virCPUDefParseXML (Jincheng Miao),<br/>
      Check for NULL in qemu monitor event filter (Ján Tomko),<br/>
      qemuPrepareNVRAM: Save domain after NVRAM path generation (Michal Privoznik),<br/>
      remoteNodeGetFreePages: Don't alloc args.pages.pages_val (Michal Privoznik),<br/>
      virNodeAllocPages: Disallow RO connection (Michal Privoznik),<br/>
      polkit_driver: fix possible segfault (Pavel Hrdina),<br/>
      blkdeviotune: fix bug with saving values into live XML (Pavel Hrdina),<br/>
      security: Fix labelling host devices (bz 1145968) (Cole Robinson),<br/>
      nodeinfo: fix nodeGetFreePages when max node is zero (Jincheng Miao),<br/>
      Fix bug with loading bridge name for active domain during libvirtd start (Pavel Hrdina),<br/>
      libvirt-guests: run after time-sync.target (Jim Fehlig),<br/>
      qemu: Fix memory leak in RDMA migration code (Jiri Denemark),<br/>
      nodeinfo: report error when given node is out of range (Jincheng Miao),<br/>
      virsh-host: fix pagesize unit of freepages (Jincheng Miao),<br/>
      qemu: raise an error when trying to use readonly sata disks (Giuseppe Scrivano),<br/>
      qemu: Add missing goto on rawio (John Ferlan),<br/>
      Move the FIPS detection from capabilities (Pavel Hrdina),<br/>
      virSecuritySELinuxSetTapFDLabel: Temporarily revert to old behavior (Michal Privoznik),<br/>
      audit: fix memory leak without WITH_AUDIT (Ján Tomko),<br/>
      Fixes for domains with no iothreads (Ján Tomko),<br/>
      Fix leak in x86UpdateHostModel (Ján Tomko),<br/>
      Fix libvirtd crash when removing metadata (Erik Skultety),<br/>
      qemu: Don't fail startup/attach for IOThreads if no JSON (John Ferlan),<br/>
      qemu: fix crash with shared disks (Ján Tomko),<br/>
      qemu: Honor hugepages for UMA domains (Michal Privoznik),<br/>
      conf: Disallow nonexistent NUMA nodes for hugepages (Michal Privoznik),<br/>
      domaincapstest: Run cleanly on systems missing OVMF firmware (Michal Privoznik),<br/>
      util: storage: Copy driver type when initializing chain element (Peter Krempa),<br/>
      qemu: time: Report errors if agent command fails (Peter Krempa),<br/>
      network: check negative values in bridge queues (Erik Skultety),<br/>
      openvz: fixed two memory leaks on migration code (Hongbin Lu),<br/>
      util: storage: Fix qcow(2) header parser according to docs (Peter Krempa),<br/>
      qemu: Fix call in qemuDomainSetNumaParamsLive for virCgroupNewIOThread (John Ferlan),<br/>
      qemu: Fix iothreads issue (John Ferlan),<br/>
      domain_conf: Add iothreadpin to cputune (John Ferlan),<br/>
      network: check for invalid forward delay time (Erik Skultety),<br/>
      qemu: Fix build breaker on printf directive (John Ferlan),<br/>
      daemon: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity BAD_SIZEOF (John Ferlan),<br/>
      Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      virsh: Resolve Coverity DEADCODE (John Ferlan),<br/>
      domain_conf: Resolve Coverity COPY_PASTE_ERROR (John Ferlan),<br/>
      virtime: Resolve Coverity DEADCODE (John Ferlan),<br/>
      remote_driver: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      node_device_udev: Try harder to get human readable vendor:product (Lubomir Rintel),<br/>
      util: fix potential leak in error codepath (Martin Kletzander),<br/>
      network: try to eliminate default network conflict during package install (Laine Stump),<br/>
      libxl: Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virfile: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virutil: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      daemon: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virsh: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      libvirt.spec: Fix permission even for libvirt-driver-qemu (Michal Privoznik),<br/>
      libxl: fix mapping of libvirt and libxl lifecycle actions (Jim Fehlig),<br/>
      nvram: Fix permissions (Michal Privoznik),<br/>
      libxl: Resolve Coverity NULL_RETURNS (John Ferlan),<br/>
      qemu: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      qemu: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      xen: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      nodeinfo: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      qemu: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      network_conf: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virstring: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      network: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      lxc: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virsh: Resolve Coverity DEADCODE (John Ferlan),<br/>
      tests: Resolve Coverity DEADCODE (John Ferlan),<br/>
      qemu: Resolve Coverity DEADCODE (John Ferlan),<br/>
      virsh: Resolve Coverity DEADCODE (John Ferlan),<br/>
      virfile: Resolve Coverity DEADCODE (John Ferlan),<br/>
      virsh: Resolve Coverity DEADCODE (John Ferlan),<br/>
      storage: Resolve Coverity OVERFLOW_BEFORE_WIDEN (John Ferlan),<br/>
      qemu: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      vbox: Resolve Coverity UNUSED_VALUE (John Ferlan),<br/>
      storage: Resolve Coverity UNUSED_VALUE (John Ferlan),<br/>
      qemu_driver: Resolve Coverity COPY_PASTE_ERROR (John Ferlan),<br/>
      selinux: Properly check TAP FD label (Michal Privoznik),<br/>
      qemu: Silence coverity on optional migration stats (Jiri Denemark),<br/>
      qemu: panic device: check for invalid address type (Erik Skultety),<br/>
      qemu: Propagate QEMU errors during incoming migrations (Jiri Denemark),<br/>
      selinux: Avoid label reservations for type = none (Shivaprasad G Bhat),<br/>
      storage_conf: Fix libvirtd crash when defining scsi storage pool (Pradipta Kr. Banerjee),<br/>
      Don't include non-migratable features in host-model (Ján Tomko),<br/>
      conf: Fix even implicit labels (Michal Privoznik),<br/>
      apparmor: allow reading cap_last_cap (Felix Geyer),<br/>
      security: fix DH key generation when FIPS mode is on (Giuseppe Scrivano),<br/>
      lxc_container: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      vircgroup: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      qemu_process: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      remote: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      test_conf: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      tests: Resolve Coverity RESOURCE_LEAK in commandhelper (Wang Rui),<br/>
      sanlock: Avoid freeing uninitialized value (Jiri Denemark),<br/>
      qemu: ensure sane umask for qemu process (Chunyan Liu),<br/>
      spec: Fix preun script for daemon (Jiri Denemark),<br/>
      remote: Fix memory leak on error path when deserializing bulk stats (Peter Krempa),<br/>
      Free ifname in testDomainGenerateIfnames (Ján Tomko)<br/>
      </li>

      <li>Improvements:<br/>
      Fix typo s/EMULATORIN/EMULATORPIN/ (Daniel P. Berrange),<br/>
      Rename tunable event constants (Daniel P. Berrange),<br/>
      qemu: Always re-detect backing chain (Peter Krempa),<br/>
      event_example: cleanup example code for tunable event (Pavel Hrdina),<br/>
      parallels: login to parallels SDK (Dmitry Guryanov),<br/>
      parallels: build with parallels SDK (Dmitry Guryanov),<br/>
      virnetserver: Raise log level of max_clients related messages (Michal Privoznik),<br/>
      blkdeviotune: trigger tunable event for blkdeviotune updates (Pavel Hrdina),<br/>
      tunable_event: extend debug message and tweak limit for remote message (Pavel Hrdina),<br/>
      virsh: Expose virNodeAllocPages (Michal Privoznik),<br/>
      nodeinfo: Implement nodeAllocPages (Michal Privoznik),<br/>
      virnuma: Introduce virNumaSetPagePoolSize (Michal Privoznik),<br/>
      nodeGetFreePages: Push forgotten change (Michal Privoznik),<br/>
      Convert polkit code to use DBus API instead of CLI helper (Daniel P. Berrange),<br/>
      Support passing dict by reference for dbus messages (Daniel P. Berrange),<br/>
      Convert remote daemon &amp; acl code to use polkit API (Daniel P. Berrange),<br/>
      Convert callers to use typesafe APIs for getting identity attrs (Daniel P. Berrange),<br/>
      Convert callers to use typesafe APIs for setting identity attrs (Daniel P. Berrange),<br/>
      Add typesafe APIs for virIdentity attributes (Daniel P. Berrange),<br/>
      Add common API for doing polkit authentication (Daniel P. Berrange),<br/>
      qemu: wire up virtio-net segment offloading options (Ján Tomko),<br/>
      conf: add options for disabling segment offloading (Ján Tomko),<br/>
      storage: Improve error message when traversing backing chains (Peter Krempa),<br/>
      qemu: Report better errors from broken backing chains (Peter Krempa),<br/>
      qemu: Sanitize argument names and empty disk check in qemuDomainDetermineDiskChain (Peter Krempa),<br/>
      util: storage: Allow metadata crawler to report useful errors (Peter Krempa),<br/>
      cputune_event: queue the event for cputune updates (Pavel Hrdina),<br/>
      add an example how to use tunable event (Pavel Hrdina),<br/>
      conf: sanitize tap and vhost paths (Martin Kletzander),<br/>
      qemuBuildNumaArgStr: Discard def-&gt;cpu check (Michal Privoznik),<br/>
      nodeinfo: Prefer MIN in nodeGetFreePages (Michal Privoznik),<br/>
      domain_conf: separate structures from virDomainDef (Pavel Hrdina),<br/>
      Fix typo of virNodeGetFreePages comment (Jincheng Miao),<br/>
      qemu: Memory pre-pinning support for RDMA migration (Michael R. Hines),<br/>
      qemu: RDMA migration support (Michael R. Hines),<br/>
      qemu: Add RDMA migration capabilities (Jiri Denemark),<br/>
      qemu: Prepare support for arbitrary migration protocol (Jiri Denemark),<br/>
      qemu: Fix old tcp:host URIs more cleanly (Jiri Denemark),<br/>
      qemu: Expose additional migration statistics (Michael R. Hines),<br/>
      cpu: fix wrong single quote mark (Chen Fan),<br/>
      cpu: remove repeated word in error message (Daniel P. Berrange),<br/>
      qemu: hook: Provide hook when restoring a domain save image (Peter Krempa),<br/>
      schema: properly set tap and vhost backend attributes optional (Jianwei Hu),<br/>
      qemu: save image: Split out checks done only when editing the save img (Peter Krempa),<br/>
      qemu: save image: Split out new definition check/update (Peter Krempa),<br/>
      qemu: save image: Add possibility to return XML stored in the image (Peter Krempa),<br/>
      qemu: save image: Split out user provided XML checker (Peter Krempa),<br/>
      libxl: Drop driver lock in libxlDomainDefineXML (Jim Fehlig),<br/>
      qemu: Process the hostdev "rawio" setting (John Ferlan),<br/>
      hostdev: Add "rawio" attribute to _virDomainHostdevSubsysSCSI (John Ferlan),<br/>
      domain_conf: Change virDomainDiskDef 'rawio' to use virTristateBool (John Ferlan),<br/>
      storage: zfs: implement pool build and delete (Roman Bogorodskiy),<br/>
      qemu: Improve check for local storage (Peter Krempa),<br/>
      maint: clean up _virDomainMemoryStat (Wang Yufei),<br/>
      maint: clean up _virDomainBlockStats (Wang Yufei),<br/>
      maint: clean up _virDomainInterfaceStats (Wang Yufei),<br/>
      virsh: add options to query bulk stats group (Francesco Romani),<br/>
      qemu: bulk stats: implement block group (Francesco Romani),<br/>
      qemu: bulk stats: implement interface group (Francesco Romani),<br/>
      qemu: bulk stats: implement VCPU group (Francesco Romani),<br/>
      qemu: bulk stats: implement balloon group (Francesco Romani),<br/>
      qemu: bulk stats: implement CPU stats group (Francesco Romani),<br/>
      qemu: bulk stats: extend internal collection API (Francesco Romani),<br/>
      rpc: make daemon spawning a bit more intelligent (Martin Kletzander),<br/>
      domaincaps: Expose UEFI binary path, if it exists (Michal Privoznik),<br/>
      qemu_capabilities: Change virQEMUCapsFillDomainCaps signature (Michal Privoznik),<br/>
      qemu: add support for shared memory mapping (Martin Kletzander),<br/>
      docs, conf, schema: add support for shared memory mapping (Martin Kletzander),<br/>
      schemas: finish virTristate{Bool,Switch} transition (Martin Kletzander),<br/>
      qemu: Add support for multiple versions of 'pseries' machine type (Pradipta Kr. Banerjee),<br/>
      domaincaps: Expose UEFI capability (Michal Privoznik),<br/>
      Wire up the interface backend options (Ján Tomko),<br/>
      conf: add backend element to interfaces (Ján Tomko),<br/>
      conf: remove redundant local variable (Ján Tomko),<br/>
      conf: split out virtio net driver formatting (Ján Tomko),<br/>
      qemu: Need to check for capability before query (John Ferlan),<br/>
      cputune: allow interleaved xml (Eric Blake),<br/>
      network: detect conflicting route even if it is the final entry (Laine Stump),<br/>
      qemu: Allow pinning specific IOThreads to a CPU (John Ferlan),<br/>
      qemu_cgroup: Introduce cgroup functions for IOThreads (John Ferlan),<br/>
      qemu_domain: Add niothreadpids and iothreadpids (John Ferlan),<br/>
      vircgroup: Introduce virCgroupNewIOThread (John Ferlan),<br/>
      qemu: Issue query-iothreads and to get list of active IOThreads (John Ferlan),<br/>
      virsh: Add iothread to 'attach-disk' (John Ferlan),<br/>
      util: get rid of unnecessary umask() call (Martin Kletzander),<br/>
      remove redundant pidfile path constructions (Martin Kletzander),<br/>
      rpc: reformat the flow to make a bit more sense (Martin Kletzander),<br/>
      blockjob: allow finer bandwidth tuning for set speed (Eric Blake),<br/>
      blockcopy: add qemu implementation of new tunables (Eric Blake),<br/>
      blockcopy: add qemu implementation of new API (Eric Blake),<br/>
      blockcopy: tweak how rebase calls into copy (Eric Blake),<br/>
      virDomainUndefineFlags: Allow NVRAM unlinking (Michal Privoznik),<br/>
      virsh: Move --completed from resume to domjobinfo (Jiri Denemark),<br/>
      conf: snapshot: Don't default-snapshot empty drives (Peter Krempa),<br/>
      util:  Add function to check if a virStorageSource is "empty" (Peter Krempa),<br/>
      tests: Add more test suite mock helpers (Daniel P. Berrange),<br/>
      util: Allow port allocator to skip bind() check (Daniel P. Berrange),<br/>
      qemu: remove leftover virResetLastError (Ján Tomko),<br/>
      util: storage: Convert disk locality check to switch statement (Peter Krempa),<br/>
      virprocess: Introduce our own setns() wrapper (Michal Privoznik),<br/>
      qemu: dump: Resume CPUs only when the VM is still alive (Peter Krempa),<br/>
      util: process: Don't report OOM errors in helper (Peter Krempa),<br/>
      qemu: Automatically create NVRAM store (Michal Privoznik),<br/>
      qemu: Implement extended loader and nvram (Michal Privoznik),<br/>
      conf: Extend &lt;loader/&gt; and introduce  &lt;nvram/&gt; (Michal Privoznik),<br/>
      qemu: Transfer recomputed stats back to source (Jiri Denemark),<br/>
      qemu: Recompute downtime and total time when migration completes (Jiri Denemark),<br/>
      qemu: Transfer migration statistics to destination (Jiri Denemark),<br/>
      virsh: Add support for completed job stats (Jiri Denemark),<br/>
      qemu: Avoid incrementing jobs_queued if virTimeMillisNow fails (Jiri Denemark),<br/>
      Refactor job statistics (Jiri Denemark),<br/>
      virsh: additional scaled output units (Eric Blake),<br/>
      util: let virSetSockReuseAddr report unified error message (Martin Kletzander),<br/>
      blockcopy: add a way to parse disk source (Eric Blake),<br/>
      qemu: snapshot: Simplify error paths (Peter Krempa),<br/>
      qemu: snapshot: Fix snapshot function header formatting and spacing (Peter Krempa),<br/>
      qemu: snapshot: Acquire job earlier on snapshot revert/delete (Jincheng Miao),<br/>
      qemu: snapshot: Fix job handling when creating snapshots (Peter Krempa),<br/>
      qemu: Rename DEFAULT_JOB_MASK to QEMU_DEFAULT_JOB_MASK (Peter Krempa),<br/>
      blockcopy: remote implementation for new API (Eric Blake),<br/>
      blockcopy: expose new API in virsh (Eric Blake),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      blockcopy: split out virsh implementation (Eric Blake),<br/>
      blockcopy: allow block device destination (Eric Blake),<br/>
      blockjob: add new --bytes flag to virsh blockjob (Eric Blake),<br/>
      blockjob: add new --raw flag to virsh blockjob (Eric Blake),<br/>
      blockjob: split up virsh blockjob info (Eric Blake),<br/>
      blockjob: allow finer bandwidth tuning for query (Eric Blake),<br/>
      blockjob: add new monitor json conversions (Eric Blake),<br/>
      blockjob: hoist bandwidth scaling out of monitor code (Eric Blake),<br/>
      blockjob: split out block info monitor handling (Eric Blake),<br/>
      tests: Add test cases for previous commit (Michal Privoznik),<br/>
      blockjob: split out block info driver handling (Eric Blake),<br/>
      blockjob: shuffle block rebase code (Eric Blake),<br/>
      maint: tighten curly brace syntax checking (Eric Blake),<br/>
      maint: use hanging curly braces (Eric Blake),<br/>
      maint: enforce previous if-else {} cleanups (Eric Blake),<br/>
      maint: use consistent if-else braces in remaining spots (Eric Blake),<br/>
      maint: use consistent if-else braces in lxc, vbox, phyp (Eric Blake),<br/>
      maint: use consistent if-else braces in xen and friends (Eric Blake),<br/>
      maint: use consistent if-else braces in qemu (Eric Blake),<br/>
      maint: use consistent if-else braces in conf and friends (Eric Blake),<br/>
      LXC: add HOME environment variable (Chen Hanxiao),<br/>
      tests: force FIPS testing mode with new enough GNU TLS versions (Giuseppe Scrivano),<br/>
      command: test umask support (Eric Blake),<br/>
      util: don't shadow global umask declaration (Martin Kletzander),<br/>
      util: Introduce flags field for macvtap creation (Matthew Rosato)<br/>
      </li>

      <li>Cleanups:<br/>
      nodeinfo: fix version of nodeAllocPages (Tomoki Sekiyama),<br/>
      audit: remove redundant NULL assignment (Ján Tomko),<br/>
      qemu: Drop unused formatting of uuid (Peter Krempa),<br/>
      qemu_cgroup: Adjust spacing around incrementor (John Ferlan),<br/>
      qemu: dump: Fix formatting of function headers and code inline (Peter Krempa),<br/>
      virsh: domain: Clean up handling of "dom" in "save" command (Peter Krempa)<br/>
      </li>
    </ul>

    <h3>1.2.8: Sep 02 2014</h3>
    <ul>
      <li>Features:<br/>
      blockcopy: virDomainBlockCopy with XML destination, typed params (Eric Blake),<br/>
      lib: Introduce API for retrieving bulk domain stats (Peter Krempa),<br/>
      Introduce virDomainOpenGraphicsFD API (Ján Tomko),<br/>
      storage: ZFS support (Roman Bogorodskiy)<br/>
      </li>

      <li>Documentation:<br/>
      fix bootmenu timeout description (Martin Kletzander),<br/>
      conf: add support for bootmenu timeout (Martin Kletzander),<br/>
      maint: fix comment typo (Eric Blake),<br/>
      formatdomain: Reformat vCPU description (John Ferlan),<br/>
      virsh: Fix help info for freepages (Li Yang),<br/>
      virsh: man: Add LXC format info for domxml-from/to-native (Li Yang),<br/>
      virsh: Fix comment for net-undefine (Li Yang),<br/>
      man: virsh: add missing auto-converge option for 'migrate' (Pradipta Kr. Banerjee),<br/>
      nwfilter: add missing dscp attribute (Jianwei Hu),<br/>
      virsh: man: Crosslink "desc" and "metadata" sections (Peter Krempa),<br/>
      man: virsh: Add 'vcpu_period' and 'vcpu_quota' support info for LXC (Li Yang),<br/>
      man: virsh: Add man page for "virsh metadata" (Peter Krempa),<br/>
      fix missing forward slash (Jianwei Hu),<br/>
      use correct hints per bus type in &lt;disk&gt; examples (Eric Blake),<br/>
      use unique dev names in &lt;disk&gt; examples (Eric Blake),<br/>
      virsh: clean up attach-interface paragraph in man page (Laine Stump),<br/>
      audit: Fix some comments (Wang Rui)<br/>
      </li>

      <li>Portability:<br/>
      spec: drop anything older than Fedora 13 (Eric Blake),<br/>
      fix mingw build (Pavel Hrdina),<br/>
      build: fix mingw build with virCommandReorderFDs (Martin Kletzander),<br/>
      build: force configure failed when perl is missing (Jincheng Miao),<br/>
      Include param.h in case of HAVE_BSD_CPU_AFFINITY (Guido Günther)<br/>
      </li>

      <li>Bug Fixes:<br/>
      blockcopy: allow larger buf-size (Eric Blake),<br/>
      selinux: properly label tap FDs with imagelabel (Martin Kletzander),<br/>
      Fix connection to already running session libvirtd (Christophe Fergeau),<br/>
      storage: zfs: fix double listing of new volumes (Roman Bogorodskiy),<br/>
      qemu_driver: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virnetserverservice: Resolve Coverity ARRAY_VS_SINGLETON (John Ferlan),<br/>
      libxl_migration: Resolve Coverity NULL_RETURNS (John Ferlan),<br/>
      qemu_command: Resolve Coverity DEADCODE (John Ferlan),<br/>
      qemu_driver: Resolve Coverity DEADCODE (John Ferlan),<br/>
      domain_conf: Resolve Coverity DEADCODE (John Ferlan),<br/>
      qemu_monitor: Resolve Coverity NESTING_INDENT_MISMATCH (John Ferlan),<br/>
      storage_conf: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu_driver: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      phyp_driver: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      libxl_migration: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      bridge_driver: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virsh-network: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      network_conf: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu_capabilities: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      libxl_domain: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu_agent: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu_command: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      cpu_x86: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      domain_conf: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      daemon: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      qemu_capabilities: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      tests: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      util: Resolve Coverity RESOURCE_LEAK (Wang Rui),<br/>
      virsh: fix keepalive error msg (Erik Skultety),<br/>
      qemu_capabilities: Resolve Coverity NULL_RETURNS (John Ferlan),<br/>
      qemu_driver: Resolve Coverity CONSTANT_EXPRESSION_RESULT (John Ferlan),<br/>
      domain_conf: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      qemu_command: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      domain_conf: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      storage_driver: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      xen_xm: Resolve Coverity USE_AFTER_FREE (John Ferlan),<br/>
      xen_common: Resolve Coverity USE_AFTER_FREE (John Ferlan),<br/>
      parallels: Resolve Coverity USE_AFTER_FREE (John Ferlan),<br/>
      conf: fix leak with def-&gt;mem.hugepages (Martin Kletzander),<br/>
      qemu: call endjob in RevertToSnapshot (Jincheng Miao),<br/>
      virsh: Initialize vshData in cmdMigrate (Ján Tomko),<br/>
      libxl: fix memory corruption introduced by commit b55cc5f4e (Jim Fehlig),<br/>
      iotune: setting an invalid value now reports error (Erik Skultety),<br/>
      xenconfig: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virnetsocket: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      commandtest: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      numatune: setting --mode does not work well (Erik Skultety),<br/>
      qemu: min_guarantee: Parameter 'min_guarantee' not supported (Erik Skultety),<br/>
      Parallels: fix error with video card RAM dimension (Alexander Burluka),<br/>
      util: compare floor attribute in virNetDevBandwidthEqual (Martin Kletzander),<br/>
      conf: net: Correctly switch how to format address fields (Peter Krempa),<br/>
      Perform disk config validity checking for attach-device config (John Ferlan),<br/>
      nodeCapsInitNUMA: Avoid @cpumap leak (Michal Privoznik),<br/>
      qemu: Issue rtc-reset-reinjection command after guest-set-time (Michal Privoznik),<br/>
      qemu: forbid negative blkio values (Martin Kletzander),<br/>
      lxc: forbid negative blkio values (Martin Kletzander),<br/>
      qemu: Fix build error introduced in 653137eb957a278b556c6226424aad5395a (Peter Krempa),<br/>
      qemu: blkiotune: Avoid accessing non-existing disk configuration (Peter Krempa),<br/>
      qemu: Label all TAP FDs (Michal Privoznik),<br/>
      cmdMigrate: move vshConnect before vshWatchJob (Chunyan Liu),<br/>
      qemu: cpu: unplug: Remove vcpu pinning on cold cpu unplug (Peter Krempa),<br/>
      qemu: Redundant listen address entry in quest xml (Erik Skultety),<br/>
      daemon: Fix driver registration ordering (Michal Privoznik),<br/>
      network: fix crash when starting a network with no &lt;pf&gt; element (Laine Stump),<br/>
      qemu_process: fix memleak found by coverity (Pavel Hrdina),<br/>
      Maximum vlanid should be 4095 in interface.rng (Jianwei Hu),<br/>
      LXC: Fix virLXCControllerSetupDevPTS() wrt user namespaces (Richard Weinberger),<br/>
      conf: fix parsing 'cmd_per_lun' and 'max_sectors' (Mo yuxiang),<br/>
      bhyve: fix error message in bhyveStateInitialize (Dmitry Guryanov),<br/>
      qemu: migration: Check domain live state after exitting the monitor (Peter Krempa),<br/>
      qemu: managedsave: Check that VM is alive after entering async job (Peter Krempa),<br/>
      numatune: Fix parsing of empty nodeset (0,^0) (Erik Skultety),<br/>
      conf: Format interface's driver more frequently (Michal Privoznik),<br/>
      network: populate interface pool immediately when network is started (Laine Stump),<br/>
      network: make networkCreateInterfacePool more robust (Laine Stump),<br/>
      Make 'uri' command a bit more prominent. (Guido Günther),<br/>
      Don't fail qemu driver intialization if we can't determine hugepage size (Guido Günther),<br/>
      blockjob: fix use-after-free in blockcopy (Eric Blake),<br/>
      blockjob: avoid memory leak during block pivot (Eric Blake),<br/>
      snapshot: conf: Enforce absolute paths on disk and memory images (Peter Krempa),<br/>
      Node Devices: Fix nodedev-list for fc_host &amp; vports. (Prerna Saxena),<br/>
      blockjob: correctly report active commit for job info (Eric Blake),<br/>
      Fix vlanid attribute name in nwfilter d (Jianwei Hu),<br/>
      Don't overwrite errors from virNetDevBandwidthSet (Ján Tomko),<br/>
      virsh: check if domiftune parameters fit into UINT (Ján Tomko),<br/>
      storage: Refresh storage pool after upload (John Ferlan)<br/>
      </li>

      <li>Improvements:<br/>
      qemu: Allow use of iothreads for disk definitions (John Ferlan),<br/>
      domain_conf: Add support for iothreads in disk definition (John Ferlan),<br/>
      qemu: Add support for iothreads (John Ferlan),<br/>
      domain_conf: Introduce iothreads XML (John Ferlan),<br/>
      qemu: Implement bulk stats API and one of the stats groups to return (Peter Krempa),<br/>
      virsh: Implement command to excercise the bulk stats APIs (Peter Krempa),<br/>
      remote: Implement bulk domain stats APIs in the remote driver (Peter Krempa),<br/>
      lib: Add few flags for the bulk stats APIs (Peter Krempa),<br/>
      conf: Add helper to free domain list (Peter Krempa),<br/>
      vbox: Register per partes (Michal Privoznik),<br/>
      virDriverLoadModule: Honor libvirt func name tranlsation (Michal Privoznik),<br/>
      virdrivermoduletest: Test all the modules (Michal Privoznik),<br/>
      domain_conf: fix internal flag verification (Eric Blake),<br/>
      API: Tweak virDomainOpenGraphics to return fd directly (Eric Blake),<br/>
      virsh: domain: Split out code to lookup domain from string (Peter Krempa),<br/>
      Wire up virDomainOpenGraphicsFD in QEMU driver (Ján Tomko),<br/>
      Add RPC implementation for virDomainOpenGraphicsFd (Ján Tomko),<br/>
      blkdeviotune: check for overflow when parsing XML (Erik Skultety),<br/>
      storage: remove unused 'canonPath' in virStorageFileGetMetadata (Chen Fan),<br/>
      Add new 'kvm' domain feature and ability to hide KVM signature (Alex Williamson),<br/>
      maint: drop spurious semicolons (Eric Blake),<br/>
      daemon: Fix option -v missing info priority log (Zhou Yimin),<br/>
      qemu: add support for splash-timeout (Martin Kletzander),<br/>
      qemu: add capability probing for splash-timeout (Martin Kletzander),<br/>
      storage: zfs: implement download and upload (Roman Bogorodskiy),<br/>
      fdstream: introduce virFDStreamOpenBlockDevice (Roman Bogorodskiy),<br/>
      fdstream: report error if virSetNonBlock fails (Roman Bogorodskiy),<br/>
      qemu: check for active domain after agent interaction (Eric Blake),<br/>
      Parallels: Change config report errors code. (Alexander Burluka),<br/>
      Parallels: add virNodeGetCPUMap(). (Alexander Burluka),<br/>
      daemon: use socket activation with systemd (Martin Kletzander),<br/>
      rpc: pass listen FD to the daemon being started (Martin Kletzander),<br/>
      util: add virCommandPassListenFDs() function (Martin Kletzander),<br/>
      tests: support dynamic prefixes in commandtest (Martin Kletzander),<br/>
      cfg.mk: allow integers to be assigned a value computed with i|j|k (Martin Kletzander),<br/>
      daemon: support passing FDs from the calling process (Martin Kletzander),<br/>
      rpc: set listen backlog on FDs as well as on other sockets (Martin Kletzander),<br/>
      remote: create virNetServerServiceNewFDOrUNIX() wrapper (Martin Kletzander),<br/>
      util: abstract parsing of passed FDs into virGetListenFDs() (Martin Kletzander),<br/>
      virsh: Don't print extra '-'s in error message for -k and -K options (Peter Krempa),<br/>
      hvsupport: Adapt to vbox driver rewrite (Michal Privoznik),<br/>
      qemu: hotplug: Sanitize shared device removal on media change (Peter Krempa),<br/>
      qemu: conf: Split out code to retrieve hostdev key and reuse it (Peter Krempa),<br/>
      qemu: conf: Split up qemuRemoveSharedDevice into per-device-type functions (Peter Krempa),<br/>
      qemu: conf: Split up qemuAddSharedDevice into per-device-type functions (Peter Krempa),<br/>
      qemu: conf: rename qemuCheckSharedDevice to qemuCheckSharedDisk (Peter Krempa),<br/>
      qemu: shared: Split out shared device list remove code (Peter Krempa),<br/>
      qemu: shared: Split out insertion code to the shared device list (Peter Krempa),<br/>
      qemu: hotplug: Format proper source string for cdrom media change (Peter Krempa),<br/>
      qemu: hotplug: Change arguments for qemuDomainChangeEjectableMedia (Peter Krempa),<br/>
      qemu: hotplug: Add helper to initialize/teardown new disks for VMs (Peter Krempa),<br/>
      qemu: hotplug: Untangle cleanup paths in qemuDomainChangeEjectableMedia (Peter Krempa),<br/>
      conf: Pass virStorageSource into virDomainDiskSourceIsBlockType (Peter Krempa),<br/>
      qemu: Explicitly state that hotplugging cdroms and floppies doesn't work (Peter Krempa),<br/>
      conf: fix comment (Giuseppe Scrivano),<br/>
      conf, virDomainFSDefPtr: rename "path" argument to "target" (Giuseppe Scrivano),<br/>
      bhyve: add volumes support (Roman Bogorodskiy),<br/>
      storage: make disk source pool translation generic (Roman Bogorodskiy),<br/>
      driver: Move virDrvNetworkGetDHCPLeases to the appropriate section (Peter Krempa),<br/>
      qemu: allow device block I/O tuning in session mode (Martin Kletzander),<br/>
      src/xenconfig: move common parsing/formatting to xen_common (Jim Fehlig),<br/>
      src/xenconfig: wrap common formatting code (Kiarie Kahurani),<br/>
      src/xenconfig: wrap common parsing code (Kiarie Kahurani),<br/>
      xen: rename xenxs to xenconfig (Jim Fehlig),<br/>
      qemu: process: Pin on per-vcpu basis instead of per-vcpupin element (Peter Krempa),<br/>
      conf: Refactor virDomainVcpuPinDefParseXML (Peter Krempa),<br/>
      conf: cpupin: Remove useless checking of vcpupin element count (Peter Krempa),<br/>
      qemu: process: Remove unnecessary argument and rename function (Peter Krempa),<br/>
      vbox: Introducing vboxCommonDriver (Taowei),<br/>
      vbox: Add registerDomainEvent (Taowei),<br/>
      vbox: Rewrite vboxNode functions (Taowei),<br/>
      vbox: Rewrite vboxConnectListAllDomains (Taowei),<br/>
      vbox: Rewrite vboxDomainScreenshot (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotDelete (Taowei),<br/>
      vbox: Rewrite vboxDomainRevertToSnapshot (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotHasMetadata (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotIsCurrent (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotCurrent (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotGetParent (Taowei),<br/>
      vbox: Rewrite vboxDomainHasCurrentSnapshot (Taowei),<br/>
      vbox: Rewrite vboxSnapshotLookupByName (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotListNames (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotNum (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotGetXMLDesc (Taowei),<br/>
      vbox: Rewrite vboxDomainSnapshotCreateXML (Taowei),<br/>
      vbox: Add API for vboxDomainSnapshotCreateXML (Taowei),<br/>
      vbox: Rewrite vboxDomainDetachDeviceFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainDetachDevice (Taowei),<br/>
      vbox: Rewrite vboxDomainUpdateDeviceFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainAttachDeviceFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainAttachDevice (Taowei),<br/>
      vbox: Rewrite vboxDomainUndefine (Taowei),<br/>
      vbox: Rewrite vboxConnectNumOfDefinedDomains (Taowei),<br/>
      vbox: Rewrite vboxConnectListDefinedDomains (Taowei),<br/>
      vbox: Rewrite vboxDomainGetXMLDesc (Taowei),<br/>
      vbox: Add API for vboxDomainGetXMLDesc (Taowei),<br/>
      vbox: Rewrite vboxDomainGetMaxVcpus (Taowei),<br/>
      vbox: Rewrite vboxDomainGetVcpusFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainSetVcpus (Taowei),<br/>
      vbox: Rewrite vboxDomainSetVcpusFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainGetState (Taowei),<br/>
      vbox: Rewrite vboxDomainGetInfo (Taowei),<br/>
      vbox: Rewrite vboxDomainSetMemory (Taowei),<br/>
      vbox: Rewrite vboxDomainGetOSType (Taowei),<br/>
      vbox: Rewrite vboxDomainDestroy (Taowei),<br/>
      vbox: Rewrite vboxDomainDestroyFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainReboot (Taowei),<br/>
      vbox: Rewrite vboxDomainShutdown (Taowei),<br/>
      vbox: Rewrite vboxDomainShutdownFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainResume (Taowei),<br/>
      vbox: Rewrite vboxDomainSuspend (Taowei),<br/>
      vbox: Rewrite vboxDomainIsUpdated (Taowei),<br/>
      vbox: Rewrite vboxDomainIsPersistent (Taowei),<br/>
      vbox: Rewrite vboxDomainIsActive (Taowei),<br/>
      vbox: Rewrite vboxDomainLookupByName (Taowei),<br/>
      vbox: Rewrite vboxDomainCreateXML (Taowei),<br/>
      vbox: Rewrite vboxDomainCreate (Taowei),<br/>
      vbox: Rewrite vboxDomainCreateWithFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainDefineXML (Taowei),<br/>
      vbox: Rewrite vboxDomainUndefineFlags (Taowei),<br/>
      vbox: Rewrite vboxDomainLookupByUUID (Taowei),<br/>
      vbox: Rewrite vboxDomainLookupById (Taowei),<br/>
      vbox: Rewrite vboxConnectNumOfDomains (Taowei),<br/>
      vbox: Rewrite vboxConnectListDomains (Taowei),<br/>
      vbox: Rewrite vboxConnectGetCapabilities (Taowei),<br/>
      vbox: Rewrite vboxConnectGetMaxVcpus (Taowei),<br/>
      vbox: Rewrite vboxConnectIsAlive (Taowei),<br/>
      vbox: Rewrite vboxConnectIsEncrypted (Taowei),<br/>
      vbox: Rewrite vboxConnectIsSecure (Taowei),<br/>
      vbox: Rewrite vboxConnectGetHostname (Taowei),<br/>
      vbox: Rewrite vboxConnectGetVersion (Taowei),<br/>
      vbox: Rewrite vboxDomainSave (Taowei),<br/>
      vbox: Rewrite vboxConnectClose (Taowei),<br/>
      vbox: Begin to rewrite, vboxConnectOpen (Taowei),<br/>
      src/xenxs: Refactor code formating vif device config (Jim Fehlig),<br/>
      src/xenxs: Refactor code formating peripheral device config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating Vfb config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating OS config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating CPU config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating xm disk config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating Char devices config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating event actions config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating virtual time config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating memory config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code formating general VM config (Kiarie Kahurani),<br/>
      qemu: Tidy up job handling during live migration (Sam Bobroff),<br/>
      LXC: resolve issues in lxcDomainSetMaxMemory (Chen Hanxiao),<br/>
      daemon: Limit default log level to journald to VIR_LOG_INFO (Peter Krempa),<br/>
      libvirtd: conf: Mention support for logging into journald (Peter Krempa),<br/>
      maint: improve syntax check for space around = (Eric Blake),<br/>
      qemu_conf: Undefine the correct symbol (Michal Privoznik),<br/>
      qemu: process: Fix header format of qemuProcessSetVcpuAffinities (Peter Krempa),<br/>
      qemu: use guest-fsfreeze-freeze-list command if mountpoints to freeze specified (Tomoki Sekiyama),<br/>
      qemu: Actually clear bandwidth settings (Jianwei Hu),<br/>
      src/xenxs: Refactor code parsing OS config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing general config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing emulated hardware config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing Vif config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing Char devices config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing Vfb config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing xm disk config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing CPU features (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing PCI config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing event actions (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing virtual time config (Kiarie Kahurani),<br/>
      src/xenxs: Refactor code parsing memory config (Kiarie Kahurani),<br/>
      conf: Add USB sound card support and implement it for qemu (Peter Krempa),<br/>
      hostdev: Add iSCSI hostdev XML (John Ferlan),<br/>
      domain_conf: Common routine to handle network storage host xml def (John Ferlan),<br/>
      qemu: Make virFileFindHugeTLBFS fault tolerant (Michal Privoznik),<br/>
      qemu: reword caps-related error (Martin Kletzander),<br/>
      domtop: Turn parse_argv into void (Michal Privoznik),<br/>
      qemu: fix comment in qemu.conf (Martin Kletzander)<br/>
      </li>

      <li>Cleanups:<br/>
      virsh: drop unused variable (Eric Blake),<br/>
      Fix spacing around commas (Michal Privoznik),<br/>
      examples: test: Kill unsupported maxMemory element (Peter Krempa),<br/>
      cleanup spaces between parentheses and braces (Martin Kletzander),<br/>
      qemu_command: fix block indentation (Giuseppe Scrivano),<br/>
      qemu: Remove extraneous space in function prototypes (John Ferlan),<br/>
      daemon: Fix indentation in libvirtd.c (Wang Rui),<br/>
      domtop: Remove unused variable (Michal Privoznik)<br/>
      </li>
    </ul>

    <h3>1.2.7: Aug 02 2014</h3>
    <ul>
      <li>Features:<br/>
      Introduce virConnectGetDomainCapabilities (Michal Privoznik)<br/>
      </li>

      <li>Documentation:<br/>
      bhyve: document recent changes (Roman Bogorodskiy),<br/>
      fix an incorrect example for memoryBacking (Chen Hanxiao),<br/>
      libvirt-guests: fix some typos in a comment (Martin Kletzander),<br/>
      libvirt: Fix 'quest' typo in comment (Li Yang),<br/>
      Point to list of valid pool target volume formats (John Ferlan),<br/>
      Documented VIR_DOMAIN_FEATURE_CAPABILITIES use of virDomainCapabilitesPolicy (Cédric Bosdonnat),<br/>
      Explicitly specify how to override spice channel mode (Peter Krempa),<br/>
      add domain to address of hostdev pci (Hu Tao),<br/>
      domain: Clarify that disk type 'lun' works with iSCSI too (Peter Krempa),<br/>
      esx: Fix a comment about VSphere versions (Geoff Hickey),<br/>
      virsh: Document bandwidth maximum more clearly (John Ferlan),<br/>
      mention more about older capability feature bits (Eric Blake),<br/>
      Be more specific about semantics of _REUSE_EXT flag (Peter Krempa),<br/>
      Document that snapshot name of block-backed disk isn't autogenerated (Peter Krempa),<br/>
      virsh: document the possibility of accepting integers for numatune mode (Martin Kletzander),<br/>
      Document the need to free vir*Ptr objects per-function (Ján Tomko),<br/>
      Document the need to free vir*Ptr objects (Ján Tomko),<br/>
      LXC: fix an improper comments for lxcDomainDestroyFlags (Chen Hanxiao),<br/>
      formatdomain.html fixes (Michele Paolino),<br/>
      Fix broken link in the HACKING page (Michele Paolino),<br/>
      formatdomain: Fix issues found describing auth (John Ferlan),<br/>
      LXC: update comments of lxcDomainCreateXMLWithFiles() and lxcDomainCreateXML() (Yue wenyuan)<br/>
      </li>

      <li>Portability:<br/>
      build: fix build on cygwin (Eric Blake),<br/>
      domtop: Fix build on mingw (Michal Privoznik),<br/>
      build: fix build without numactl (Eric Blake),<br/>
      Fix build on non-Linux platforms (Roman Bogorodskiy),<br/>
      check for cfg-&gt;spiceTLS earlier in qemuProcessSPICEAllocatePorts (Ján Tomko),<br/>
      build: package .pc files for mingw64 (Eric Blake),<br/>
      build: fix gnulib build for mingw (Eric Blake),<br/>
      util: cgroup: Fix build on non-cgroup platforms (Peter Krempa),<br/>
      Don't require iptables-ipv6 on &gt;= F17 and RHEL &gt;= 7 (Ján Tomko),<br/>
      tools/wireshark: fix rpm build (Pavel Hrdina),<br/>
      tests: Avoid double linking some libraries (Michal Privoznik)<br/>
      </li>

      <li>Bug Fixes:<br/>
      network: always set disable_ipv6, even when it should be 0 (Laine Stump),<br/>
      Fix a crash when cloning a volume with no backing store (Ján Tomko),<br/>
      qemu: error out if PCI passthrough type is not supported (Hu Tao),<br/>
      storage: create: Create files with correct mode (Peter Krempa),<br/>
      nodedev: fix a uninitialized variable build failure (Chen Hanxiao),<br/>
      nodedev: fix pci express memory leak (Eric Blake),<br/>
      qemu: sound: Fix uninitialized model string (Peter Krempa),<br/>
      qemu: Fix starting of VMs with empty CDROM drives (Peter Krempa),<br/>
      util: virTimeFieldsThenRaw never returns negative (James),<br/>
      qemu: cgroup: Don't use NULL path on default backed RNGs (Peter Krempa),<br/>
      qemuConnectGetDomainCapabilities: Report error on unknown arch (Michal Privoznik),<br/>
      remove range checking for blkiotune weight (Martin Kletzander),<br/>
      qemuConnectGetDomainCapabilities: Use wiser defaults (Michal Privoznik),<br/>
      leaseshelper: avoid mem leak after storing lease entries (Nehal J Wani),<br/>
      conf: avoid memory leaks while parsing seclabel (Eric Blake),<br/>
      nwfilter: plug memory leak with firewall (Eric Blake),<br/>
      metadata: track title edits across libvirtd restart (Eric Blake),<br/>
      Fix build after 47e5b5ae3262f140955abd57bbb13337c65a3497 (Peter Krempa),<br/>
      qemu: snapshot: Forbid taking/reverting snapshots in PMSUSPENDED state (Peter Krempa),<br/>
      qemu: snapshot: Forbid taking snapshot in invalid state (Peter Krempa),<br/>
      schema: pool: netfs: Don't enforce slash in glusterfs pool source (Peter Krempa),<br/>
      examples: domtop: Avoid leaking memory (Peter Krempa),<br/>
      examples: domtop: Fix uninitialized variable use (Peter Krempa),<br/>
      qemu: snapshot: Forbid snapshots of iSCSI passthrough devices (Peter Krempa),<br/>
      storage: Disallow vol_wipe for sparse logical volumes (John Ferlan),<br/>
      virsh vol-upload/download disallow negative offset (John Ferlan),<br/>
      storage: Split out volume wiping as separate backend function (Peter Krempa),<br/>
      esx: Fix a bug in the XML code for storage pools (Geoff Hickey),<br/>
      blockjob: wait for pivot to complete (Eric Blake),<br/>
      Fix const correctness (Michal Privoznik),<br/>
      Fix assignment of comparison against zero (Ján Tomko),<br/>
      Fix error on fs pool build failure (Ján Tomko),<br/>
      spec: fix invalid syntax (Eric Blake),<br/>
      libxl: fix return value error Attach|DetachDeviceFlags (Chunyan Liu),<br/>
      qemu: blockcopy: Initialize correct source structure (Peter Krempa),<br/>
      GetBlockInfo: Use the correct path to qemuOpenFile (John Ferlan),<br/>
      virseclabel: Resolve Coverity FORWARD_NULL issue (John Ferlan),<br/>
      conf: Always format seclabel's model (Michal Privoznik),<br/>
      conf: Fix possible NULL dereference in virStorageVolTargetDefFormat (Matthias Bolte),<br/>
      conf: Don't allow multiple seclabels for same model (Michal Privoznik),<br/>
      qemu: don't error out when cgroups don't exist (Martin Kletzander),<br/>
      util: storage: Fix build after 25924dec0f9329d429aadae14e273602307e2214 (Peter Krempa),<br/>
      qemu: fix domxml-to-native failing when spice_tls is not enabled (Jincheng Miao),<br/>
      virEventPollDispatchHandles: Honour array boundaries (Michal Privoznik),<br/>
      Allow updating names in DHCP hosts by matching IPs. (Ján Tomko),<br/>
      Actually fix the spec file (Ján Tomko),<br/>
      libxl: fix crash in migrate confirm for transient domains (Jim Fehlig),<br/>
      libxl: acquire job though begin phase only (Jim Fehlig),<br/>
      libxl: remove domain when migration prepare fails (Jim Fehlig),<br/>
      qemu: raise an eror when using aio=native without cache=none (Giuseppe Scrivano),<br/>
      Do not allow changing the UUID of a nwfilter (Hu Jianwei),<br/>
      LXC: Allow setting max mem lower than current mem (Ján Tomko),<br/>
      virsh: domain: Use inactive XML when unplugging interface with --config (Peter Krempa),<br/>
      Free the return value of virFileFindResource (Ján Tomko),<br/>
      qemu_domain: fix startup policy for disks (Pavel Hrdina),<br/>
      Fix segfault when starting a domain with no cpu definition (Ján Tomko),<br/>
      qemu: raise an error when trying to use readonly ide disks (Giuseppe Scrivano)<br/>
      </li>

      <li>Improvements:<br/>
      blockcommit: turn on active commit (Eric Blake),<br/>
      blockcommit: track job type in xml (Eric Blake),<br/>
      Domain config: write &lt;features/&gt; if some capabilities are set. (Cédric Bosdonnat),<br/>
      blockjob: properly track blockcopy xml changes on disk (Eric Blake),<br/>
      blockcopy: add more XML for state tracking (Eric Blake),<br/>
      qemu: Implement ./hugepages/page/[@size, @unit, @nodeset] (Michal Privoznik),<br/>
      domain: Introduce ./hugepages/page/[@size, @unit, @nodeset] (Michal Privoznik),<br/>
      virbitmap: Introduce virBitmapOverlaps (Michal Privoznik),<br/>
      qemu: Utilize virFileFindHugeTLBFS (Michal Privoznik),<br/>
      Introduce virFileFindHugeTLBFS (Michal Privoznik),<br/>
      schema: bhyve and nmdm updates (Roman Bogorodskiy),<br/>
      nodedev: move pci express types to virpci.h (Eric Blake),<br/>
      nodedev: let compiler help us on switches (Eric Blake),<br/>
      qemu: sound: Handle all possible sound cards in switch statement (Peter Krempa),<br/>
      conf: RNG: Always fill in default random source path for default backend (Peter Krempa),<br/>
      spec: arm and aarch64 have kvm support with F20+ (Cole Robinson),<br/>
      spec: Use power64 macro (Cole Robinson),<br/>
      test: qemu: Add tests for multiple virtio-rng devices (Peter Krempa),<br/>
      virtio-rng: allow multiple RNG devices (Peter Krempa),<br/>
      bhyve: cdrom support (Roman Bogorodskiy),<br/>
      virsh: add option for selecting domdisplay type (Martin Kletzander),<br/>
      virsh: add error message when no graphical display is found (Martin Kletzander),<br/>
      hostdev: Introduce virDomainHostdevSubsysSCSIiSCSI (John Ferlan),<br/>
      Add virConnectPtr for qemuBuildSCSIHostdevDrvStr (John Ferlan),<br/>
      hostdev: Introduce virDomainHostdevSubsysSCSIHost (John Ferlan),<br/>
      hostdev: Introduce virDomainHostdevSubsysSCSI (John Ferlan),<br/>
      hostdev: Introduce virDomainHostdevSubsysPCI (John Ferlan),<br/>
      hostdev: Introduce virDomainHostdevSubsysUSB (John Ferlan),<br/>
      qemu: snapshot: Use storage driver to pre-create snapshot file (Peter Krempa),<br/>
      storage: Implement virStorageFileCreate for local and gluster files (Peter Krempa),<br/>
      qemu: Implement DAC driver chown callback to co-operate with storage drv (Peter Krempa),<br/>
      security: DAC: Plumb usage of chown callback (Peter Krempa),<br/>
      security: DAC: Introduce callback to perform image chown (Peter Krempa),<br/>
      security: DAC: Remove superfluous link resolution (Peter Krempa),<br/>
      storage: Add witness for checking storage volume use in security driver (Peter Krempa),<br/>
      storage: Implement storage driver helper to chown disk images (Peter Krempa),<br/>
      numatune: finish the split from domain_conf and remove all dependencies (Martin Kletzander),<br/>
      maint: simplify some syntax check exemptions (Eric Blake),<br/>
      spec: Enable sanlock on qemu_kvm_arches for RHEL (Jiri Denemark),<br/>
      Added myself in AUTHORS.in (Cédric Bosdonnat),<br/>
      Introduce virTristateSwitch enum (Ján Tomko),<br/>
      Introduce virTristateBool enum type (Ján Tomko),<br/>
      LXC: show used memory as 0 when domain is not active (Chen Hanxiao),<br/>
      lxc domain from xml: convert lxc.cap.drop (Cédric Bosdonnat),<br/>
      lxc: allow to keep or drop capabilities (Cédric Bosdonnat),<br/>
      LXC: create a bind mount for sysfs when enable userns but disable netns (Chen Hanxiao),<br/>
      storage: logical: drop useless if (Roman Bogorodskiy),<br/>
      getAdapterName: Lookup stable scsi_host (John Ferlan),<br/>
      scsi_host: Introduce virFindSCSIHostByPCI (John Ferlan),<br/>
      Add unique_id to nodedev output (John Ferlan),<br/>
      virutil: Introduce virReadSCSIUniqueId (John Ferlan),<br/>
      scsi_backend: Use existing LINUX_SYSFS_SCSI_HOST_PREFIX definition (John Ferlan),<br/>
      storage: Introduce parentaddr into virStoragePoolSourceAdapter (Osier Yang),<br/>
      virStoragePoolSourceAdapter: Refine the SCSI_HOST adapter name (Osier Yang),<br/>
      getAdapterName: check for SCSI_HOST (John Ferlan),<br/>
      node_device: HAL: Ignore return value of virStrToLong_ui (Peter Krempa),<br/>
      util: Check return value from virStrToLong* functions (Peter Krempa),<br/>
      qemu: snapshot: Reject revertion from clearly bad states (Peter Krempa),<br/>
      qemu: snapshot: Convert if-else switch to switch statement (Peter Krempa),<br/>
      bhyve: reconnect to domains after libvirtd restart (Roman Bogorodskiy),<br/>
      examples: Introduce domtop (Michal Privoznik),<br/>
      Kill last strto{l,ll,d} scouts (Michal Privoznik),<br/>
      lxc conf2xml: convert lxc.network.name for veth networks (Cédric Bosdonnat),<br/>
      lxc network configuration allows setting target container NIC name (Cédric Bosdonnat),<br/>
      spec: Consolidate with_qemu* definitions (Jiri Denemark),<br/>
      storage: Convert 'building' into a bool (John Ferlan),<br/>
      Fix build by dropping redefined typedefs (Roman Bogorodskiy),<br/>
      test: metadata: Improve test coverage (Peter Krempa),<br/>
      Log an error when we fail to set the COW attribute (Ján Tomko),<br/>
      storage: wipe: Move helper code into storage backend (Peter Krempa),<br/>
      schema: put interleave at correct level (Eric Blake),<br/>
      schema: add interleave inside numatune (Martin Kletzander),<br/>
      qemu: leave restricting cpuset.mems after initialization (Martin Kletzander),<br/>
      qemu: split out cpuset.mems setting (Martin Kletzander),<br/>
      qemu: pass numa node binding preferences to qemu (Martin Kletzander),<br/>
      qemu: enable disjoint numa cpu ranges (Martin Kletzander),<br/>
      qemu: newer -numa parameter capability probing (Martin Kletzander),<br/>
      qemu: memory-backend-ram capability probing (Martin Kletzander),<br/>
      qemu: allow qmp probing for cmdline options without params (Martin Kletzander),<br/>
      numatune: add support for per-node memory bindings in private APIs (Martin Kletzander),<br/>
      conf, schema: add support for memnode elements (Martin Kletzander),<br/>
      numatune: Encapsulate numatune configuration in order to unify results (Martin Kletzander),<br/>
      numatune: unify numatune struct and enum names (Martin Kletzander),<br/>
      numatune: create new module for numatune (Martin Kletzander),<br/>
      conf, schema: add 'id' field for cells (Martin Kletzander),<br/>
      conf: purely a code movement (Martin Kletzander),<br/>
      qemu: remove useless error check (Martin Kletzander),<br/>
      qemu: purely a code movement (Martin Kletzander),<br/>
      support for QEMU vhost-user (Michele Paolino),<br/>
      util: forbid freeing const pointers (Eric Blake),<br/>
      add nocow test case (Chunyan Liu),<br/>
      storagevol: add nocow to vol xml (Chunyan Liu),<br/>
      storage: fs: Don't fail volume update if backing store isn't accessible (Peter Krempa),<br/>
      storage: fs: Properly parse backing store info (Peter Krempa),<br/>
      storage: fs: Process backing store data in virStorageBackendProbeTarget (Peter Krempa),<br/>
      storage: backend: fs: Touch up coding style (Peter Krempa),<br/>
      storage: Track backing store of a volume in the target struct (Peter Krempa),<br/>
      storage: backend: Fix formatting of function arguments (Peter Krempa),<br/>
      Rework lxc apparmor profile (Cédric Bosdonnat),<br/>
      Implement interface stats for BSD (Roman Bogorodskiy),<br/>
      util: virstatslinux: make more generic (Roman Bogorodskiy),<br/>
      libxl: support hotplug of &lt;interface&gt; (Chunyan Liu),<br/>
      libxl: add HOSTDEV type in libxlDomainDetachDeviceConfig (Chunyan Liu),<br/>
      spec: Update polkit dependencies for CVE-2013-4311 (Jiri Denemark),<br/>
      capabilities: use bool instead of int (Eric Blake),<br/>
      openvswitch: Delete port if it exists while adding a new one (Chunhe Li),<br/>
      virSecurityLabelDefParseXML: Rework (Michal Privoznik),<br/>
      aa-helper: adjust previous patch (Cédric Bosdonnat),<br/>
      Don't output libvirt-UUID.files for LXC apparmor profiles (Cédric Bosdonnat),<br/>
      libxl: Correct cast to virDomainDiskDiscard enum. (Ian Campbell),<br/>
      LXC: add support for --config in setmem command (Chen Hanxiao),<br/>
      virSecurityDeviceLabelDef: substitute 'norelabel' with 'relabel' (Michal Privoznik),<br/>
      virSecurityLabelDef: substitute 'norelabel' with 'relabel' (Michal Privoznik),<br/>
      storage: Split out volume upload/download as separate backend function (Peter Krempa),<br/>
      libxl: add discard support to libxl_device_disk (Olaf Hering),<br/>
      conf: Improve metadata type verification (Peter Krempa),<br/>
      qemu: snapshot: Refactor image labelling of new snapshot files (Peter Krempa),<br/>
      qemu: Refactor qemuDomainPrepareDiskChainElement (Peter Krempa),<br/>
      qemu: snapshot: Improve approach to deal with snapshot metadata (Peter Krempa),<br/>
      qemu: block: Properly track disk source while pivoting to new image (Peter Krempa),<br/>
      qemu: blockcopy: Use the mirror disk source to label the files (Peter Krempa),<br/>
      util: storage: Return complete parent info from virStorageFileChainLookup (Peter Krempa),<br/>
      util: storage: Make virStorageFileChainLookup more network storage aware (Peter Krempa),<br/>
      security: AppArmor: Implement per-image seclabel set (Peter Krempa),<br/>
      security: AppArmor: Implement per-image seclabel restore (Peter Krempa),<br/>
      security: DAC: Implement per-image seclabel set (Peter Krempa),<br/>
      security: DAC: Implement per-image seclabel restore (Peter Krempa),<br/>
      security: selinux: Implement per-image seclabel set (Peter Krempa),<br/>
      security: selinux: Implement per-image seclabel restore (Peter Krempa),<br/>
      security: Introduce APIs to label single images (Peter Krempa),<br/>
      locking: Add APIs to lock individual image files (Peter Krempa),<br/>
      qemu: cgroup: Setup only the top level disk image for read-write access (Peter Krempa),<br/>
      qemu: cgroup: Add functions to set cgroup image stuff on individual imgs (Peter Krempa),<br/>
      util: XML: Avoid forward function declaration (Peter Krempa),<br/>
      libxl: rename goto label (Jim Fehlig),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      properly indent virSecurityLabelDefsParseXML() parameters (Martin Kletzander),<br/>
      Fix the indentation in libvirt.spec.in (Ján Tomko),<br/>
      util: cgroup: Add helper to convert device mode to string (Peter Krempa),<br/>
      util: storage: Copy parent's disk metadata to backing chain elements (Peter Krempa),<br/>
      util: storage: Add function to transfer config parts to new chain element (Peter Krempa),<br/>
      util: storagefile: Add deep copy for struct virStorageSource (Peter Krempa),<br/>
      storage: Move readonly and shared flags to disk source from disk def (Peter Krempa),<br/>
      conf: Don't output seclabels for backingStore elements (Peter Krempa),<br/>
      storage: file: Tolerate NULL src when uninitializing the backend (Peter Krempa),<br/>
      qemu: Add helper to initialize storage file backend with correct uid/gid (Peter Krempa),<br/>
      qemu: Don't propagate whole disk definition into qemuDomainGetImageIds (Peter Krempa),<br/>
      qemu: Add support for networked disks for block pull/block rebase (Peter Krempa),<br/>
      qemu: Add support for networked disks for block commit (Peter Krempa),<br/>
      lib: Introduce flag VIR_DOMAIN_BLOCK_REBASE_RELATIVE (Peter Krempa),<br/>
      lib: Introduce flag VIR_DOMAIN_BLOCK_COMMIT_RELATIVE (Peter Krempa),<br/>
      qemu: refactor qemuDomainGetBlockInfo to work with remote storage (Peter Krempa),<br/>
      storage: gluster: Optimize header reader functions (Peter Krempa),<br/>
      util: storage: Allow specifying format for virStorageFileGetMetadataFromBuf (Peter Krempa),<br/>
      util: storage: Inline use of virStorageFileGetMetadataFromFDInternal (Peter Krempa),<br/>
      audit: Audit smartcard devices (Peter Krempa),<br/>
      audit: Add auditing for serial/parallel/channel/console character devs (Peter Krempa),<br/>
      virt-lxc-convert: make free return values in bytes (Cédric Bosdonnat),<br/>
      qemu: dump: Report better error when dumping VM with passthrough devices (Peter Krempa),<br/>
      LXC: remove duplicate controller check code (Chen Hanxiao),<br/>
      wireshark: Honor API change coming with 1.12 release (Michal Privoznik),<br/>
      wireshark: Include more of libvirt internals (Michal Privoznik),<br/>
      qemu: monitor: Add support for backing name specification for block-stream (Peter Krempa),<br/>
      qemu: monitor: Add argument for specifying backing name for block commit (Peter Krempa),<br/>
      qemu: caps: Add capability for change-backing-file command (Peter Krempa),<br/>
      audit: disk: Refactor disk auditing to avoid auditing remote storage (Peter Krempa),<br/>
      conf: audit: Split out common steps to audit domain devices (Peter Krempa),<br/>
      conf: audit: rng: Reorder new and old RNG device definitions (Peter Krempa),<br/>
      util: storage: Add helper to determine whether storage is local (Peter Krempa),<br/>
      Utilize virDomainDiskAuth for storage pools (John Ferlan),<br/>
      Utilize virDomainDiskAuth for domain disk (John Ferlan),<br/>
      qemuargv2xmltest: Resurrect RBD and iSCSI auth (John Ferlan),<br/>
      virstorage: Introduce virStorageAuthDef (John Ferlan),<br/>
      blockjob: turn on qemu capability bit for active commit (Eric Blake),<br/>
      blockjob: allow omitted arguments to QMP block-commit (Eric Blake),<br/>
      qemu: Implement virConnectGetDomainCapabilities (Michal Privoznik),<br/>
      qemu_capabilities: Introduce virQEMUCapsGetDefaultMachine (Michal Privoznik),<br/>
      qemu_capabilities: Introduce virQEMUCapsIsMachineSupported (Michal Privoznik),<br/>
      qemu_capabilities: Introduce virQEMUCapsCacheLookupByArch (Michal Privoznik),<br/>
      tests: Move qemu caps XML parsing into shared unit (Michal Privoznik),<br/>
      virsh: expose virConnectGetDomainCapabilities (Michal Privoznik),<br/>
      Introduce domain_capabilities (Michal Privoznik),<br/>
      Remove double OOM error reporting (Ján Tomko),<br/>
      Remove double OOM error reporting from JSON monitor (Ján Tomko),<br/>
      Add OOM error reporting to a few fucntions (Ján Tomko),<br/>
      Set errno on OOM in lxcProcReadMeminfo (Ján Tomko),<br/>
      Use virBufferCheckError everywhere we report OOM error (Ján Tomko),<br/>
      Report errors in virCapabilitiesFormatXML (Ján Tomko),<br/>
      Introduce virBufferCheckError (Ján Tomko),<br/>
      Use virStringReplace instead of openvz_replace (Ján Tomko),<br/>
      Remove useless condition in networkRadvdConfContents (Ján Tomko),<br/>
      usb: Remove redundant comment (Ján Tomko),<br/>
      More indentation fixes (Ján Tomko),<br/>
      Fix indentation in bridge driver (Ján Tomko),<br/>
      virsh: Allow attach-disk to specify disk target bus (Yanbing Du),<br/>
      qemu: Add cmd_per_lun, max_sectors to virtio-scsi (Mike Perez),<br/>
      Add invariant TSC cpu flag (Ján Tomko),<br/>
      util: unify extra asterisk in viralloc.h (Martin Kletzander)<br/>
      </li>

      <li>Cleanups:<br/>
      tests: Remove stale scsihostdata dir (Michal Privoznik),<br/>
      xenapiConnectGetCapabilities: Remove unused 'cleanup' label (Michal Privoznik)<br/>
      </li>
    </ul>

    <h3>1.2.6: Jul 02 2014</h3>
    <ul>
      <li>Features:<br/>
      libxl: add migration support and fixes (Jim Fehlig),<br/>
      various improvements and fixes for NUMA (Michal Privoznik)<br/>
      </li>

      <li>Documentation:<br/>
      security: manager: Document behavior of disk label manipulation funcs (Peter Krempa),<br/>
      fix some typos in formatdomain.html (Jincheng Miao),<br/>
      virsh: man: Correctly spell QEMU (Peter Krempa),<br/>
      virsh: man: Fix examples and docs for virsh version (Peter Krempa),<br/>
      Added example script on how to convert LXC container config (Cédric Bosdonnat),<br/>
      blockjob: document recent job addition (Eric Blake),<br/>
      virsh: Add details about specified migration host (Chen Fan),<br/>
      blockcommit: document semantics of committing active layer (Eric Blake),<br/>
      fix a typo in hacking.html.in (Wangrui (K)),<br/>
      formatcaps: Rework and add stubs to document (Michal Privoznik)<br/>
      </li>

      <li>Portability:<br/>
      build: link libvirt_conf with libxml (Martin Kletzander),<br/>
      vbox: fix linker error (Jim Fehlig),<br/>
      libxl: don't break the build on Xen&gt;=4.5 because of libxl_vcpu_setaffinity() (Dario Faggioli),<br/>
      Add PKG_CONFIG_PATH to run.in script. (Daniel P. Berrange),<br/>
      Change 'interface' to 'iface' in virNetworkDHCPLease (Daniel P. Berrange),<br/>
      Fix shadowed variable with older gcc (Ján Tomko),<br/>
      Add pkg-config files to allow deps to build against source tree (Daniel P. Berrange),<br/>
      Add pkg-config files for libvirt-qemu &amp; libvirt-lxc (Daniel P. Berrange),<br/>
      blockjob: avoid compiler uncertainty in info sizing (Eric Blake),<br/>
      build: prefer -fstack-protector-strong to -all (Ján Tomko),<br/>
      build: remove ssp-buffer-size (Ján Tomko),<br/>
      build: remove duplicit warning suppression (Ján Tomko),<br/>
      virnetdev: Use ifname in virNetDevGetLinkInfo (Michal Privoznik),<br/>
      Fix virbitmaptest on 32-bit (Ján Tomko),<br/>
      translations: Don't leave default template fields in .po files (Martin Kletzander),<br/>
      tests: Build virstoragetest only when storage driver is compiled too (Peter Krempa),<br/>
      Fix build on freebsd (Pavel Hrdina)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: copy: Accept 'format' parameter when copying to a non-existing img (Peter Krempa),<br/>
      storage: gluster: Fix header reader function (Peter Krempa),<br/>
      conf: storage: Add volume feature formatter for gluster pools (Peter Krempa),<br/>
      vboxsnapshotxmltest: Don't write to a file in abs_srcdir (Michal Privoznik),<br/>
      securityselinuxlabeltest: Don't create dummy file in the srcdir (Michal Privoznik),<br/>
      Report one error less when getting net dev speed (Ján Tomko),<br/>
      Only detect PCI Express devices as root in udev nodedev driver (Ján Tomko),<br/>
      libxl: add PV console if not explicitly specified (Jim Fehlig),<br/>
      qemu: snapshot: Save persistent domain config when taking external snapshot (Peter Krempa),<br/>
      bhyve: fix build by fixing typo in variable name (Roman Bogorodskiy),<br/>
      docs: publish correct enum values (Eric Blake),<br/>
      qemu: fix guestfwd chardev option back how it was (Martin Kletzander),<br/>
      Fix typo s/SASL_CONF_DIR/SASL_CONF_PATH/ in QEMU VNC code (Daniel P. Berrange),<br/>
      qemu: blockcopy: Don't remove existing disk mirror info (Peter Krempa),<br/>
      bridge: leases: Fix potential crash caused by use after free (Peter Krempa),<br/>
      Free DHCP leases file in networkGetDHCPLeasesHelper (Ján Tomko),<br/>
      Rework remoteSerializeDHCPLease (Ján Tomko),<br/>
      Free file header in virStorageFileGetMetadataRecurse (Ján Tomko),<br/>
      graphics: remember graphics not auto allocated ports (Giuseppe Scrivano),<br/>
      LXC: trivially support flag VIR_DRV_FEATURE_TYPED_PARAM_STRING (Chen Hanxiao),<br/>
      cmdFreepages: initialize @tmp (Michal Privoznik),<br/>
      Fix closedir usage in virNumaGetPages (Roman Bogorodskiy),<br/>
      Don't include @LIBS@ in libvirt.pc.in file (Daniel P. Berrange),<br/>
      virnuma: Actually build huge page code (Michal Privoznik),<br/>
      Do not call closedir with NULL argument (Ján Tomko),<br/>
      Fix invalid write in virNumaGetDistances (Ján Tomko),<br/>
      Properly check the return value of CCWAddressAsString (Ján Tomko),<br/>
      virsh: fix broken code in freepages (Eric Blake),<br/>
      Fix xmconfigtest (Jim Fehlig),<br/>
      vbox_snapshot_conf: fix wrong use of 'xmlSaveFormatFileEnc' (Pavel Hrdina),<br/>
      tests: fix vbox snapshot xmls (Pavel Hrdina),<br/>
      vbox: fix a segfault when taking a snapshot (Yohan BELLEGUIC),<br/>
      vbox: snapshot: Avoid memleaks in functions dealing with disk arrays (Peter Krempa),<br/>
      vbox: snapshot: Avoid memleak in virVBoxSnapshotConfAllChildren (Peter Krempa),<br/>
      uuid: Fix coverity warning of unchecked return value (Peter Krempa),<br/>
      network: bridge: Avoid freeing uninitialized pointer on cleanup path (Peter Krempa),<br/>
      net: leaseshelper: Refactor copying of old entries to avoid double free (Peter Krempa),<br/>
      net: leaseshelper: Ignore corrupted lease file and rewrite it (Peter Krempa),<br/>
      net: leaseshelper: Don't crash if DNSMASQ doesn't provide lease expiry (Peter Krempa),<br/>
      blockjob: don't remove older-style mirror XML (Eric Blake),<br/>
      blockcommit: require base below top (Eric Blake),<br/>
      leaseshelper: fix another crash (Pavel Hrdina),<br/>
      bhyve: do not cleanup unallocated networks on fail (Roman Bogorodskiy),<br/>
      bhyve: fix crash in bhyveBuildNetArgStr (Roman Bogorodskiy),<br/>
      storage: report VIR_ERR_NO_STORAGE_VOL when the file doesn't exist (Giuseppe Scrivano),<br/>
      blockcommit: fix regression with explicit top argument (Eric Blake),<br/>
      virsh: forbid negative vcpu argument to vcpupin (Jincheng Miao),<br/>
      Fix crash when saving a domain with type none dac label (Ján Tomko),<br/>
      vbox_snapshot_conf: Resolve Coverity warnings (John Ferlan),<br/>
      vbox_temp: Resolve Coverity warnings (John Ferlan),<br/>
      libxl: Resolve Coverity warnings (John Ferlan),<br/>
      leaseshelper: fix crash (Pavel Hrdina),<br/>
      qemu: Properly label FDs when restoring domain with static label (Shivaprasad G Bhat),<br/>
      nodeinfo: avoid uninitialized variable on error (Eric Blake),<br/>
      storage: fix memory leak with encrypted images (Eric Blake),<br/>
      vbox: fix compilation error (Roman Bogorodskiy),<br/>
      SELinux: don't fail silently when no label is present (Ján Tomko),<br/>
      parallels: Avoid possible leak of "cpu" from parallelsBuildCapabilities (Peter Krempa),<br/>
      Fix storage format probing (Ján Tomko),<br/>
      network: bridge: Avoid memory leak from networkBuildDhcpDaemonCommandLine (Peter Krempa),<br/>
      qemu: monitor: Fix type of holdtime argument in qemuMonitorJSONSendKey (Peter Krempa),<br/>
      libxl: Avoid possible use of uninitialized mem in libxlDomainStart (Daniel P. Berrange),<br/>
      qemu: Remove character device backend only after frontend is gone (Jiri Denemark),<br/>
      qemu: Remove disk backend only after frontend is gone (Jiri Denemark),<br/>
      qemu: Remove interface backend only after frontend is gone (Jiri Denemark),<br/>
      Don't use AI_ADDRCONFIG when binding to wildcard addresses (Ján Tomko),<br/>
      qemu: Unref cfg when detaching hostdev interface (Jiri Denemark),<br/>
      virsh: Check whether found volume is member of the specified storage pool (Peter Krempa)<br/>
      </li>

      <li>Improvements:<br/>
      Introduce virFileReadAllQuiet (Ján Tomko),<br/>
      Track privileged state in udev nodedev driver (Ján Tomko),<br/>
      build: fix 'make syntax-check' after commit c6cf5df3 (Jim Fehlig),<br/>
      LXC: throw an error if we failed to get Idmap elements (Chen Hanxiao),<br/>
      cpu: Add new Broadwell CPU model (Jiri Denemark),<br/>
      net: merge virNetworkGetDHCPLeases and virNetworkGetDHCPLeasesForMAC (Peter Krempa),<br/>
      Add test for type none model dac seclabel (Ján Tomko),<br/>
      test: add user_xattr check for securityselinuxlabeltest (Jincheng Miao),<br/>
      libxl: detect support for save and restore (Jim Fehlig),<br/>
      security: nop: Avoid very long lines (Peter Krempa),<br/>
      security: Fix header formatting of a few functions (Peter Krempa),<br/>
      security: manager: Unify function header format (Peter Krempa),<br/>
      security: manager: Avoid forward decl of virSecurityManagerDispose (Peter Krempa),<br/>
      security: Rename virSecurityManagerRestoreImageLabel to *Disk* (Peter Krempa),<br/>
      util: s/virStorageSourceClearBackingStore/virStorageSourceBackingStoreClear (Peter Krempa),<br/>
      Fix a typo in a localized string (Daniel Veillard),<br/>
      virConnectCompareCPU: Introduce FAIL_INCOMPATIBLE flag (Jiri Denemark),<br/>
      cpuCompare*: Add support for reporting failure on incompatible CPUs (Jiri Denemark),<br/>
      cpu: Cleanup coding style in generic CPU driver (Jiri Denemark),<br/>
      virsh: Remove bogus stat on log file (Jiri Denemark),<br/>
      enhance hostdev mode 'capabilities' process (Jincheng Miao),<br/>
      storage: Don't store parent directory of an image explicitly (Peter Krempa),<br/>
      storage: Don't canonicalize paths unnecessarily (Peter Krempa),<br/>
      tests: virstoragetest: Remove unneeded relative test plumbing (Peter Krempa),<br/>
      tests: virstoragetest: Don't test relative start of backing chains (Peter Krempa),<br/>
      util: storage: Remove now redundant backingRelative from virStorageSource (Peter Krempa),<br/>
      tests: virstoragetest: Remove now unused pathAbs (Peter Krempa),<br/>
      storage: Store relative path only for relatively backed storage (Peter Krempa),<br/>
      tests: virstoragetest: Remove "expBackingStore" field (Peter Krempa),<br/>
      util: storage: Add helper to resolve relative path difference (Peter Krempa),<br/>
      LXC: check whether we get MemSwap[Total|Usage] (Chen Hanxiao),<br/>
      qemu: enum cleanups in "src/qemu/*" (Julio Faracco),<br/>
      libxl: fix version annotation of migration functions (Jim Fehlig),<br/>
      virtportallocator: new function "virPortAllocatorSetUsed" (Giuseppe Scrivano),<br/>
      net-dhcp-leases: Add virsh support (Nehal J Wani),<br/>
      net-dhcp-leases: Private implementation inside network (Nehal J Wani),<br/>
      net-dhcp-leases: Implement the remote protocol (Nehal J Wani),<br/>
      net-dhcp-leases: Implement the public APIs (Nehal J Wani),<br/>
      virNumaGetPages: Don't fail on huge page-less systems (Michal Privoznik),<br/>
      virNumaGetPageInfo: Take huge pages into account (Michal Privoznik),<br/>
      storage: gluster: Avoid name shadow on older compilers (Peter Krempa),<br/>
      storage: gluster: Add backend to return unique storage file path (Peter Krempa),<br/>
      util: storagefile: Introduce universal function to canonicalize paths (Peter Krempa),<br/>
      util: string: Add helper to free non-NULL terminated string arrays (Peter Krempa),<br/>
      libxl: prefer qdisk for &lt;driver name='file'&gt; (Jim Fehlig),<br/>
      qemu: parse -device virtio-balloon (Laine Stump),<br/>
      Report correct error in virNetDevTapCreate (Ján Tomko),<br/>
      util: numa: Stub out hugepage code on non-Linux platforms (Peter Krempa),<br/>
      util: numa: Catch readdir errors in virNumaGetPages (Peter Krempa),<br/>
      tests: Fix syntax-check after cdd11151791bc9e61538988438980f41c0185681 (Peter Krempa),<br/>
      test: Disable storage test when FS backend isn't compiled in (Peter Krempa),<br/>
      Split out CCW address allocation (Ján Tomko),<br/>
      libxl: Use cooperative resume for migration (Jason Andryuk),<br/>
      cpu_arm: Support all ARM processors we know about (Michal Privoznik),<br/>
      virNodeParseSocket: Take ARM into account (Michal Privoznik),<br/>
      nodeinfotest: Print error if cpuinfo file can't be opened (Michal Privoznik),<br/>
      virNodeParseNode: Propagate host architecture (Michal Privoznik),<br/>
      nodeinfo: Introduce @arch to linuxNodeInfoCPUPopulate (Michal Privoznik),<br/>
      interface: clean up virInterfaceDefDevFormat (Laine Stump),<br/>
      interface: clean up virInterfaceDefParseXML (Laine Stump),<br/>
      interface: move parsing of bridge attributes into appropriate function (Laine Stump),<br/>
      interface: report link state for bonds and vlans too (Laine Stump),<br/>
      security: Rename virSecurityManagerSetImageLabel to *Disk* (Peter Krempa),<br/>
      security: Sanitize type of @migrated in virSecurityManagerRestoreAllLabel (Peter Krempa),<br/>
      util: Don't require full disk definition when getting imagelabels (Peter Krempa),<br/>
      util: storagefile: Introduce helper to free storage source perms (Peter Krempa),<br/>
      util: seclabel: Add deep copy function for device labels (Peter Krempa),<br/>
      storage: encryption: Add deep copy function for storage encryption (Peter Krempa),<br/>
      libxl: limit support for specifying an interface script (Jim Fehlig),<br/>
      libxl: support interface type=network (Jim Fehlig),<br/>
      interface: allow reordering of elements in xml (Laine Stump),<br/>
      nodeinfo: Implement nodeGetFreePages (Michal Privoznik),<br/>
      virsh: Expose virNodeGetFreePages (Michal Privoznik),<br/>
      Introduce virNodeGetFreePages (Michal Privoznik),<br/>
      virCaps: expose pages info (Michal Privoznik),<br/>
      virnuma: Introduce pages helpers (Michal Privoznik),<br/>
      nodeinfo: Rename nodeGetFreeMemory to nodeGetMemory (Michal Privoznik),<br/>
      virnuma: Introduce virNumaNodeIsAvailable (Michal Privoznik),<br/>
      virsh: expose new active commit controls (Eric Blake),<br/>
      blockjob: use stable disk string in job event (Eric Blake),<br/>
      xen: handle root= in xen-xm configuration files. (Ian Campbell),<br/>
      virt-aa-helper: allow access to /dev/vhost-net if needed (Serge Hallyn),<br/>
      util: json: Add helpers for manipulating json arrays (Peter Krempa),<br/>
      util: json: Unify function header formatting (Peter Krempa),<br/>
      Increase the size of REMOTE_MIGRATE_COOKIE_MAX to REMOTE_STRING_MAX (Shivaprasad G Bhat),<br/>
      nodedev: Introduce &lt;pci-express/&gt; to PCI devices (Michal Privoznik),<br/>
      virpci: Introduce virPCIDeviceIsPCIExpress and friends (Michal Privoznik),<br/>
      storage: better tests of lookup (Eric Blake),<br/>
      storage: renumber lookup tests (Eric Blake),<br/>
      storage: add alias for less typing (Eric Blake),<br/>
      qemu: snapshot: Don't mark all block disks for metadata reuse (Peter Krempa),<br/>
      bhyve: silent destroy command errors on cleanup (Roman Bogorodskiy),<br/>
      bhyve: implement PCI address allocation (Roman Bogorodskiy),<br/>
      virNetDevGetLinkInfo: Don't report link speed if NIC's not up (Michal Privoznik),<br/>
      tests: virstoragetest: Fix output when hitting errors (Peter Krempa),<br/>
      blockcommit: update error messages related to block jobs (Eric Blake),<br/>
      virsh: improve blockcopy UI (Eric Blake),<br/>
      virNodeDevCapPCIDevParseXML: Initialize numa_node variable (Michal Privoznik),<br/>
      virsh: Reject negative numbers in vshCommandOptULongLong (Peter Krempa),<br/>
      virsh: Reject negative numbers in vshCommandOptUL (Peter Krempa),<br/>
      virsh: Reject negative numbers in vshCommandOptUInt (Peter Krempa),<br/>
      security: Don't skip labelling for network disks (Peter Krempa),<br/>
      storage: volume: Rework lookup of volume objects (Peter Krempa),<br/>
      storage: Clean up unlocking of storage pool objects (Peter Krempa),<br/>
      storage: pool: Fix handling of errors on pool lookup failure (Peter Krempa),<br/>
      virsh: include bhyve in virsh -V output (Roman Bogorodskiy),<br/>
      maint: exempt graphic binaries from syntax check (Eric Blake),<br/>
      vmware: make version parsing more robust (Jean-Baptiste Rouault),<br/>
      node_device: Expose link state &amp; speed (Michal Privoznik),<br/>
      interface_backend_udev: Implement link speed &amp; state (Michal Privoznik),<br/>
      virnetdev: Introduce virNetDevGetLinkInfo (Michal Privoznik),<br/>
      virInterface: Expose link state &amp; speed (Michal Privoznik),<br/>
      vbox_tmpl.c: Add function for undefining snapshot (Yohan BELLEGUIC),<br/>
      vbox_tmpl.c: Patch for redefining snapshots (Yohan BELLEGUIC),<br/>
      Add vbox_snapshot_conf struct (Yohan BELLEGUIC),<br/>
      vbox_tmpl.c: Better XML description for snapshots (Manuel VIVES),<br/>
      qemu: ignore -nodefconfig and -nodefaults when parsing commandline (Laine Stump),<br/>
      test: display qemuParseCommandline warnings when VIR_TEST_DEBUG &gt; 0 (Laine Stump),<br/>
      m4: bhyve: Fix check for the required bhyve programs (Peter Krempa),<br/>
      vmx: Relax virtualHW.version check (Matthias Bolte),<br/>
      conf: alter disk mirror xml output (Eric Blake),<br/>
      conf: store mirroring information in virStorageSource (Eric Blake),<br/>
      conf: store disk source as pointer, for easier manipulation (Eric Blake),<br/>
      conf: consolidate disk def allocation (Eric Blake),<br/>
      conf: store snapshot source as pointer, for easier manipulation (Eric Blake),<br/>
      nodedev: Export NUMA node locality for PCI devices (Michal Privoznik),<br/>
      Implement pretty flag for vcpuinfo and nodecpumap (Ján Tomko),<br/>
      Introduce virBitmapDataToString (Ján Tomko),<br/>
      Always report an error if virBitmapFormat fails (Ján Tomko),<br/>
      Format NULL bitmap as an empty string (Ján Tomko),<br/>
      virsh: Separate API calls and result printing in cmdVcpuinfo (Ján Tomko),<br/>
      virsh: Invert logic in cmdVcpuinfo (Ján Tomko),<br/>
      Parallels: Include CPU info in the capabilities XML (Alexander Burluka),<br/>
      Parallels: add connectBaselineCPU() (Alexander Burluka),<br/>
      Parallels: add domainGetVcpus() (Alexander Burluka),<br/>
      maint: prohibit empty first lines (Martin Kletzander),<br/>
      Remove unnecessary empty first lines (Martin Kletzander),<br/>
      Simplify conditions in virStorageBackendProbeTarget (Ján Tomko),<br/>
      Don't reuse 'ret' variable in virStorageBackendProbeTarget (Ján Tomko),<br/>
      vircaps2xmltest: Introduce basic testing (Michal Privoznik),<br/>
      libxl: introduce libxlDomainDefCheckABIStability (Jim Fehlig),<br/>
      maint: detect VPATH builds when checking for gnulib update (Eric Blake),<br/>
      maint: optimize locale.h syntax check (Eric Blake),<br/>
      virnuma: Check for numa_bitmask_isbitset presence (Michal Privoznik),<br/>
      cfg.mk: Introduce rule for setlocale() (Michal Privoznik),<br/>
      virnuma: Implement virNumaGetDistances stub for non-NUMA (Michal Privoznik),<br/>
      virCaps: Expose distance between host NUMA nodes (Michal Privoznik),<br/>
      virnuma: Introduce virNumaGetDistances (Michal Privoznik),<br/>
      tests: monitor: json: Fix error message when returning json in json (Peter Krempa),<br/>
      libxl: Move virDomainXMLOptionNew into libxlCreateXMLConf (Daniel P. Berrange),<br/>
      libxl: Don't pass libxlDriverPrivatePtr into libxlBuildDomainConfig (Daniel P. Berrange),<br/>
      libxl: Don't pass virDomainObjPtr to libxlBuildDomainConfig (Daniel P. Berrange),<br/>
      qemu: Return in from qemuDomainRemove*Device (Jiri Denemark),<br/>
      tests: storagetest: Unify and reformat storage chain format string (Peter Krempa),<br/>
      qemu: json: Add format strings for optional command arguments (Peter Krempa),<br/>
      util: string: Return element count from virStringSplit (Peter Krempa),<br/>
      storage: Traverse backing chains of network disks (Peter Krempa),<br/>
      storage: Change to new backing store parser (Peter Krempa),<br/>
      storage: Add infrastructure to parse remote network backing names (Peter Krempa),<br/>
      storage: Switch metadata crawler to use storage driver file access check (Peter Krempa),<br/>
      storage: Switch metadata crawler to use storage driver to read headers (Peter Krempa),<br/>
      storage: Switch metadata crawler to use storage driver to get unique path (Peter Krempa),<br/>
      storage: backend: Add possibility to suppress errors from backend lookup (Peter Krempa),<br/>
      test: storage: Initialize storage source to correct type (Peter Krempa),<br/>
      storage: Determine the local storage type right away (Peter Krempa),<br/>
      storage: Move virStorageFileGetMetadata to the storage driver (Peter Krempa),<br/>
      storage: Add API to check accessibility of storage volumes (Peter Krempa),<br/>
      storage: backend: Add unique id retrieval API (Peter Krempa),<br/>
      xenapi_utils: Adapt to enum cleanups (Michal Privoznik),<br/>
      virnuma.c: Fix some comments (Michal Privoznik),<br/>
      conf: more enum cleanups in "src/conf/domain_conf.h" (Julio Faracco),<br/>
      conf: enum cleanups in "src/conf/domain_conf.h" (Julio Faracco),<br/>
      cpu: use typedefs for enums in "src/cpu/cpu_map.h" (Julio Faracco),<br/>
      virsh-nodedev: Avoid spurious errors (Michal Privoznik),<br/>
      qemu: Process DEVICE_DELETED event in a separate thread (Jiri Denemark),<br/>
      qemu: Finish device removal in the original thread (Jiri Denemark),<br/>
      Add helper program to create custom leases (Nehal J Wani)<br/>
      </li>

      <li>Cleanups:<br/>
      Remove redundant docs from libvirt.h (Jiri Denemark),<br/>
      conf: whitespace tweak (Chen Fan)<br/>
      </li>
    </ul>

    <h3>1.2.5: Jun 02 2014</h3>
    <ul>
      <li>Security:<br/>
      LSN-2014-0003: Don't expand entities when parsing XML (Daniel P. Berrange)<br/>
      </li>

      <li>Features:<br/>
      Introduce virDomain{Get,Set}Time APIs (Michal Privoznik),<br/>
      Introduce virDomainFSFreeze() and virDomainFSThaw() public API (Tomoki Sekiyama)<br/>
      </li>

      <li>Documentation:<br/>
      bhyve driver documentation improvements (Roman Bogorodskiy),<br/>
      virsh: fix typos in virsh man page (Eric Blake),<br/>
      maint: fix typo in previous patch (Eric Blake),<br/>
      fix documentation of virDomainSet(Get)Metadata (Dan Kenigsberg),<br/>
      Fix an extra ' in a translated string (Daniel Veillard),<br/>
      add a serial device with a seclabel example (Ján Tomko),<br/>
      maint: fix typos related to disk name resolution (Eric Blake),<br/>
      maint: fix typos related to 'frozen' (Eric Blake),<br/>
      mention vagrant-libvirt in apps.html (James Shubin),<br/>
      update documentation of &lt;interface type='hostdev'&gt; (Chunyan Liu),<br/>
      update README-hacking (Chen Hanxiao),<br/>
      virerror: Fix an error message typo (Cole Robinson),<br/>
      fix a typo in formatdomain (Chen Hanxiao),<br/>
      typos: fix s/it/is/ where applicable (Martin Kletzander),<br/>
      datatypes: Fix comment of secret uuid (Li Yang)<br/>
      </li>

      <li>Portability:<br/>
      build: avoid compiler warning on 32-bit platform (Eric Blake),<br/>
      build: fix build with libselinux 2.3 (Cédric Bosdonnat),<br/>
      qemu: Fix specifying char devs for PPC (Olivia Yin),<br/>
      change machine name ppce500v2 to ppce500 (Olivia Yin),<br/>
      tests: avoid dlsym mocking on mingw (Eric Blake),<br/>
      avoid 'sync' as variable name (Pavel Hrdina),<br/>
      Fix build wihout macvtap or virtualport (Ján Tomko)<br/>
      </li>

      <li>Bug Fixes:<br/>
      util: fix DST end date in virtimetest timezones (Laine Stump),<br/>
      qemu: snapshot: Improve detection of mixed snapshots (Peter Krempa),<br/>
      qemu: snapshot: Reject internal active snapshot without memory state (Peter Krempa),<br/>
      util: storage: Fix crash of libvirtd on network backed guest block-pull (Peter Krempa),<br/>
      util: fix virTimeLocalOffsetFromUTC DST processing (Laine Stump),<br/>
      qemu: managedsave: Don't spam logs with warnings about corrupted image (Peter Krempa),<br/>
      utils: storage: Canonicalize paths only for local filesystems (Peter Krempa),<br/>
      qemu: reject rather than hang on blockcommit of active layer (Eric Blake),<br/>
      Clean up chardev sockets on QEMU shutdown (Ján Tomko),<br/>
      qemu: fix &lt;clock offset='variable' basis='localtime'/&gt; (Laine Stump),<br/>
      qemu: fix RTC_CHANGE event for &lt;clock offset='variable' basis='utc'/&gt; (Laine Stump),<br/>
      qemu: Properly abort migration to a file (Jiri Denemark),<br/>
      qemu: Send migrate_cancel when aborting migration (Jiri Denemark),<br/>
      Fix error message when TUNNELLED flag is used in non-p2p migration (Jiri Denemark),<br/>
      conf: fix backing store parse off-by-one (Eric Blake),<br/>
      Fix crash in DAC driver with no seclabels (Ján Tomko),<br/>
      util: fix memory leak in failure path of virCgroupKillRecursiveInternal (Chen Hanxiao),<br/>
      qemu: Avoid leak in qemuDomainCheckRemoveOptionalDisk (Jiri Denemark),<br/>
      qemu: Ignore temporary job errors when checking migration status (Jiri Denemark),<br/>
      qemu: snapshot: Terminate job when memory compression program isn't found (Peter Krempa),<br/>
      sanlock: avoid leak in acquire() (Martin Kletzander),<br/>
      virsh: domain: Fix output of the VNC display number for domdisplay (Peter Krempa),<br/>
      sanlock: don't fail with unregistered domains (Martin Kletzander),<br/>
      storage: Resolve issues in failure path (John Ferlan),<br/>
      spec: Don't install nonexistent test_libvirt_lockd.aug (Jiri Denemark),<br/>
      spec: sanlock is x86_64 only on RHEL (Jiri Denemark),<br/>
      Fix vlan ID detection in udev interface driver (Ján Tomko)<br/>
      </li>

      <li>Improvements:<br/>
      maint: cleanup detection of const'ness of selinux ctx (Jim Fehlig),<br/>
      storage: fs: Drop-in replace use of virStorageFileGetMetadataFromBuf (Peter Krempa),<br/>
      storage: Return backing format from virStorageFileGetMetadataFromFD (Peter Krempa),<br/>
      util: new function virTimeLocalOffsetFromUTC (Laine Stump),<br/>
      storage: Add storage file API to read file headers (Peter Krempa),<br/>
      storage: Add support for access to files using provided uid/gid (Peter Krempa),<br/>
      storage: Add NONE protocol type for network disks (Peter Krempa),<br/>
      conf: Fix domain disk path iterator to work with networked storage (Peter Krempa),<br/>
      storage: Rework debugging of storage file access through storage driver (Peter Krempa),<br/>
      storage: Store gluster volume name separately (Peter Krempa),<br/>
      qemu: Make qemuDomainPrepareDiskChainElement aware of remote storage (Peter Krempa),<br/>
      qemu: process: Refresh backing chain info when reconnecting to qemu (Peter Krempa),<br/>
      Don't log an internal error when the guest hasn't updated balloon stats (Ján Tomko),<br/>
      qemuSetupCgroupForVcpu: s/virProcessInfoSetAffinity/virProcessSetAffinity/ (Michal Privoznik),<br/>
      bhyve: fix virObjectUnlock() usage (Roman Bogorodskiy),<br/>
      virdbus: Show method name in error message (Cole Robinson),<br/>
      virdbus: Remove redundant error macro (Cole Robinson),<br/>
      qemu: snapshot: Fix return value of external checkpoint with no disks (Peter Krempa),<br/>
      qemu: snapshot: Forbid empty snapshots (Peter Krempa),<br/>
      qemu: snapshot: Forbid partial internal snapshots (Peter Krempa),<br/>
      qemu: snapshot: Use typecasted switch in qemuDomainSnapshotPrepare() (Peter Krempa),<br/>
      bhyve: domain events support (Roman Bogorodskiy),<br/>
      migration: add support for migrateURI configuration (Chen Fan),<br/>
      util: refactor virNetlinkCommand to fix several bugs / style problems (Laine Stump),<br/>
      build: nuke more uses of 'sync' (Eric Blake),<br/>
      Return error when updating cdrom device (Pavel Hrdina),<br/>
      Revert "maint: prefer enum over int for virstoragefile structs" (Eric Blake),<br/>
      parallels: create VMs in the default place (Dmitry Guryanov),<br/>
      parallels: add disks correctly (Dmitry Guryanov),<br/>
      parallels: set file format in virDomainDef (Dmitry Guryanov),<br/>
      parallels: add VIR_STORAGE_FILE_PLOOP format (Dmitry Guryanov),<br/>
      conf: fix seclabels for chardevs (Ján Tomko),<br/>
      Rename virDomainDiskSourceDefFormatSeclabel (Ján Tomko),<br/>
      security_dac: honor relabel='no' in chardev config (Jim Fehlig),<br/>
      security_dac: avoid relabeling hostdevs when relabel='no' (Jim Fehlig),<br/>
      security_dac: honor relabel='no' in disk config (Jim Fehlig),<br/>
      security_dac: avoid relabeling when relabel='no' (Jim Fehlig),<br/>
      security_dac: rework callback parameter passing (Jim Fehlig),<br/>
      security_dac: cleanup use of enum types (Jim Fehlig),<br/>
      security_dac: annotate some functions with ATTRIBUTE_NONNULL (Jim Fehlig),<br/>
      maint: prefer enum over int for virstoragefile structs (Eric Blake),<br/>
      maint: shorten 'TypeType' function names (Eric Blake),<br/>
      maint: use enum typedef for virstorageencryption.h (Eric Blake),<br/>
      vbox: fix stale comment about vdi storage type (Eric Blake),<br/>
      qemu: Implement virDomain{Get,Set}Time (Michal Privoznik),<br/>
      virsh: Expose virDomain{Get,Set}Time (Michal Privoznik),<br/>
      security_dac: Fix indentation (Jim Fehlig),<br/>
      security_dac: Remove unnecessary curly braces (Jim Fehlig),<br/>
      security_dac: Remove unnecessary ATTRIBUTE_UNUSED (Jim Fehlig),<br/>
      virsh: reject undefine --wipe-storage without also naming storage (Li Yang),<br/>
      conf: use typedefs for enums in "src/conf/snapshot_conf.h" (Julio Faracco),<br/>
      conf: use typedefs for enums in "src/conf/storage_conf.h" (Julio Faracco),<br/>
      conf: use typedefs for enums in "src/conf/nwfilter_conf.h" (Julio Faracco),<br/>
      qemu: Make qemuProcess{Start,Stop}CPUs easier to follow (Jiri Denemark),<br/>
      qemuDomainObjBeginNestedJob: Return -2 for temporary failures (Jiri Denemark),<br/>
      qemu: Make qemuDomainObjBeginNestedJob static (Jiri Denemark),<br/>
      qemu: extract common PCI handling functions (Roman Bogorodskiy),<br/>
      qemu: extract PCI handling structs (Roman Bogorodskiy),<br/>
      qemu: Adjust size for qcow2/qed if not on sector boundary (John Ferlan),<br/>
      sanlock: code movement in virLockManagerSanlockAcquire (Martin Kletzander),<br/>
      apibuild: Disallow 'returns' return description (Michal Privoznik),<br/>
      qemu: Support mountpoints option of guest-fsfreeze-freeze (Tomoki Sekiyama),<br/>
      virsh: Expose new virDomainFSFreeze and virDomainFSThaw API (Tomoki Sekiyama),<br/>
      qemu: Implement virDomainFSFreeze and virDomainFSThaw (Tomoki Sekiyama),<br/>
      conf: use typedefs for enums in node_device_conf, nwfilter_params (Julio Faracco),<br/>
      libxl: fix support for &lt;interface type="hostdev"&gt; syntax (Chunyan Liu),<br/>
      maint: use $(SED) instead of sed for syntax-check (Roman Bogorodskiy),<br/>
      bhyve: implement connectGetSysinfo (Roman Bogorodskiy),<br/>
      qemu: Implement a stub cpuArchDriver.compare() handler for arm and aarch64 (Oleg Strikov),<br/>
      ESX: add virStorageVolGetInfo in iSCSI backend. (Dawid Zamirski),<br/>
      parallels: add a set of trivial functions (Dmitry Guryanov),<br/>
      parallels: don't add domain to the list twice (Dmitry Guryanov),<br/>
      parallels: don't enable VNC when we define a new domain (Dmitry Guryanov),<br/>
      parallels: fix virDomainDef.features comparison (Dmitry Guryanov),<br/>
      Add support for timestamping QEMU logs (Ján Tomko),<br/>
      qemu: track quiesced status in qemuDomainSnapshotFSFreeze (Tomoki Sekiyama),<br/>
      remote: Implement virDomainFSFreeze and virDomainFSThaw (Tomoki Sekiyama),<br/>
      udev: consider the device a CDROM when ID_CDROM=1 (Giuseppe Scrivano),<br/>
      virdbus: Make virDBusCall static (Cole Robinson),<br/>
      qemu: specify domain in host-side PCI addresses when needed/supported (Laine Stump),<br/>
      qemu: add host-pci-multidomain capability (Laine Stump),<br/>
      storageVolCreateXMLFrom: Allow multiple accesses to origvol (Michal Privoznik),<br/>
      conf: use typedefs for enums in "src/conf/{network,interface}_conf.h" (Julio Faracco),<br/>
      conf: use typedefs for enums in "src/conf/cpu_conf.h" (Julio Faracco),<br/>
      util: use typedefs for enums in "src/util/" directory (Julio Faracco),<br/>
      virsh: Replace list element to defined variable (Li Yang),<br/>
      libxl: support PARAVIRT reboot flag (Jim Fehlig),<br/>
      libxl: support PARAVIRT and ACPI shutdown flags (Jim Fehlig),<br/>
      Introduce a new flag for controlling shutdown/reboot (Jim Fehlig),<br/>
      conf: drop extra storage probe (Eric Blake),<br/>
      bhyve: report cpuTime in bhyveDomainGetInfo (Roman Bogorodskiy),<br/>
      bhyve: implement connectDomainXMLToNative (Roman Bogorodskiy),<br/>
      bhyve: improve bhyve_command.c testability (Roman Bogorodskiy)<br/>
      </li>

      <li>Cleanups:<br/>
      virSecurityDACRestoreSecurityHostdevLabel: Unmark @def as unused (Michal Privoznik)<br/>
      </li>
    </ul>

    <h3>1.2.4: May 04 2014</h3>
    <ul>
      <li>Documentation:<br/>
      Device{Attach,Detach}: Document S4 limitations (Michal Privoznik),<br/>
      Add a new example to illustrate domain migration (Sahid Orentino Ferdjaoui),<br/>
      update docs for setting the QEMU BIOS path (Chen Hanxiao),<br/>
      document nmdm type console (Roman Bogorodskiy),<br/>
      Fix typos in src/* (Nehal J Wani),<br/>
      document that vfio is default for hostdev networks too (Laine Stump),<br/>
      cpu: Add documentation for CPU driver APIs (Jiri Denemark),<br/>
      virsh: Fix comment of vshCmdInfo (Li Yang)<br/>
      </li>

      <li>Portability:<br/>
      Explicitly link virfirewalltest and virsystemdtest against dbus (Guido Günther),<br/>
      qemuxml2argvtest: Don't use privileged mode upfront (Guido Günther),<br/>
      tests: skip virfirewalltest on non-Linux systems (Roman Bogorodskiy),<br/>
      tests: don't fail with newer gnutls (Martin Kletzander),<br/>
      fix build with older gcc (Ján Tomko),<br/>
      storage: reject negative indices (Eric Blake),<br/>
      networkxml2firewalltest: fix build failure on freebsd (Pavel Hrdina),<br/>
      virfirewall: fix build on freebsd (Pavel Hrdina),<br/>
      Disable libvirtd by default when building on Win32 (Daniel P. Berrange),<br/>
      Don't use SO_REUSEADDR on Win32 platforms (Daniel P. Berrange),<br/>
      Conditionalize include of dlfcn.h in virmock.h (Daniel P. Berrange),<br/>
      build: avoid 'index' as variable name (Eric Blake),<br/>
      build: Don't use code with dbus_message_unref when built without dbus (Martin Kletzander),<br/>
      tests: Fix systemd test with --without-driver-modules (Jiri Denemark),<br/>
      Fix build on mingw32 (Ján Tomko),<br/>
      build: avoid compiler warning on shadowed name (Jean-Baptiste Rouault),<br/>
      tests: link against libxml2 (Guido Günther),<br/>
      tests: build viridentitytest only WITH_ATTR. (Jincheng Miao),<br/>
      maint: Correctly detect wether "gluster" cli tool is accessible (Peter Krempa),<br/>
      libvirt-guests: avoid bashism (Guido Günther),<br/>
      Use the force flag for mkfs -t xfs (Ján Tomko)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Restore skipping of setting capacity (John Ferlan),<br/>
      qemu: fix crash when removing &lt;filterref&gt; from interface with update-device (Laine Stump),<br/>
      storage: Clear all data allocated about backing store before reparsing (Peter Krempa),<br/>
      nwfilter: Tear down temp. filters when tearing all filters (Stefan Berger),<br/>
      Set mknod permission in device ACL for LXC USB devices (Daniel P. Berrange),<br/>
      conf: avoid null deref during storage probe (Eric Blake),<br/>
      qemu: properly quit migration with abort_on_error (Martin Kletzander),<br/>
      qemu: don't call virFileExists() for network type disks (Martin Kletzander),<br/>
      storage_backend_rbd: Correct argument order to rbd_create3 (Steven McDonald),<br/>
      xen: ensure /usr/sbin/xend exists before checking status (Jim Fehlig),<br/>
      Remove bogus ATTRIBUTE_NONNULL from virFirewallAddRuleFull (Daniel P. Berrange),<br/>
      Make autostart of virtlockd actually work (Daniel P. Berrange),<br/>
      Fix leak on OOM in virNWFilterVarValueCreateSimpleCopyValue (Daniel P. Berrange),<br/>
      qemu: Avoid overflow when setting migration speed on inactive domains (Jiri Denemark),<br/>
      qemu: don't check for backing chains for formats w/o snapshot support (Martin Kletzander),<br/>
      Fix pci bus naming for PPC (Daniel P. Berrange),<br/>
      Document behavior of setvcpus during guest boot (Ján Tomko),<br/>
      Save domain status after cpu hotplug (Ján Tomko),<br/>
      Fix error for out of range vcpu in qemuDomainPinVcpuFlags (Ján Tomko),<br/>
      Properly free vcpupin info for unplugged CPUs (Ján Tomko),<br/>
      Only set QEMU_CAPS_NO_HPET on x86 (Ján Tomko),<br/>
      Fix Memory Leak in virStorageFileGetMetadataRecurse() (Nehal J Wani),<br/>
      qemu: Unlock the NWFilter update lock by leaving via the cleanup label (Stefan Berger),<br/>
      storage: netfs: Handle backend errors (John Ferlan),<br/>
      conf: fix omission of &lt;driver&gt; in domain dumpxml (Eric Blake),<br/>
      Fix virsystemdtest without SYSTEMD_DAEMON (Ján Tomko),<br/>
      qemu: Avoid overflow when setting migration speed (Jiri Denemark),<br/>
      bhyve: fix domain management (Wojciech Macek),<br/>
      Check maximum startcpu value correctly (Ján Tomko),<br/>
      storage: Don't update pool available/allocation if buildVol fails (John Ferlan),<br/>
      LXC: Fix return code evaulation in lxcCheckNetNsSupport() (Richard Weinberger),<br/>
      Fix incorrect values in redirdev ABI check error (Ján Tomko),<br/>
      virNetDev{Replace,Restore}MacAddress: Fix memory leak (Wangrui K),<br/>
      bhyveConnectGetCapabilities: Fix double caps unref (Michal Privoznik),<br/>
      Simplify bhyveDriverGetCapabilities() (Michal Privoznik),<br/>
      bhyve_capabilities: Add Semihalf to Copyright (Michal Privoznik),<br/>
      tests: Don't crash when creating the config object fails (Guido Günther),<br/>
      conf: avoid memleak on NULL path (Eric Blake),<br/>
      lxc conf2xml: don't let current vcpus at 0: define won't like it (Cédric Bosdonnat),<br/>
      QoS: make tc filters match all traffic (Antoni S. Puimedon),<br/>
      NFS storage pool: Fix libvirtd crash due to refactor edit (John Ferlan),<br/>
      Define CPUINFO_FILE_LEN and fix maxlen of cpuinfo file for all uses (Olivia Yin),<br/>
      Fix Memory Leak in daemon/libvirtd.c (Nehal J Wani),<br/>
      qemu: make sure agent returns error when required data are missing (Martin Kletzander),<br/>
      Fix coverity-reported leak in virSecurityManagerGenLabel (Ján Tomko),<br/>
      phyp: fix logic error on volume creation (Eric Blake),<br/>
      qemu: cleanup error checking on agent replies (Martin Kletzander)<br/>
      </li>

      <li>Improvements:<br/>
      util: new stricter unsigned int parsing (Eric Blake),<br/>
      util: fix uint parsing on 64-bit platforms (Eric Blake),<br/>
      Misc error reporting bugs in QEMU cli builder (Daniel P. Berrange),<br/>
      nwfilter: Validate rule after parsing (Stefan Berger),<br/>
      Add support for QEMU migration to use SASL authentication (Sahid Orentino Ferdjaoui),<br/>
      enforce sane readdir usage (Eric Blake),<br/>
      network: use virDirRead in networkMigrateStateFiles (Laine Stump),<br/>
      storage: use virDirRead API (Eric Blake),<br/>
      drivers: use virDirRead API (Eric Blake),<br/>
      util: use virDirRead API (Eric Blake),<br/>
      conf: use virDirRead API (Eric Blake),<br/>
      nodeinfo: use virDirRead API (Natanael Copa),<br/>
      util: introduce virDirRead wrapper for readdir (Natanael Copa),<br/>
      tests: remove hostdevmgr directory on cleanup (Martin Kletzander),<br/>
      Use virFileFindResource to locate virtlockd daemon (Daniel P. Berrange),<br/>
      Use virFileFindResource to locate libvirtd daemon (Daniel P. Berrange),<br/>
      Recheck disk backing chains after snapshot (Jiri Denemark),<br/>
      network: centralize check for active network during interface attach (Laine Stump),<br/>
      network: set macvtap/hostdev networks active if their state file exists (Laine Stump),<br/>
      network: change location of network state xml files (Laine Stump),<br/>
      network: create statedir during driver initialization (Laine Stump),<br/>
      network: fix virNetworkObjAssignDef and persistence (Laine Stump),<br/>
      build: -avoid-version on libvirt_driver_nwfilter (Dwight Engen),<br/>
      libxl: Support PV consoles (Ian Campbell),<br/>
      build: add nwfilterxml2firewalldata to dist (Dwight Engen),<br/>
      Add a test suite for nwfilter ebiptables tech driver (Daniel P. Berrange),<br/>
      Remove last trace of direct firewall command exection (Daniel P. Berrange),<br/>
      Convert ebiptablesDriverProbeStateMatch to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebiptablesApplyNewRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebtablesApplyDropAllRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebtablesApplyDHCPOnlyRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebtablesApplyBasicRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebiptablesTearNewRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebtablesRemoveBasicRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebiptablesTearOldRules to virFirewall (Daniel P. Berrange),<br/>
      Convert nwfilter ebiptablesAllTeardown to virFirewall (Daniel P. Berrange),<br/>
      Convert ebtables code over to use firewall APIs (Daniel P. Berrange),<br/>
      Add test for converting network XML to iptables rules (Daniel P. Berrange),<br/>
      Replace virNetworkObjPtr with virNetworkDefPtr in network platform APIs (Daniel P. Berrange),<br/>
      Convert bridge driver over to use new firewall APIs (Daniel P. Berrange),<br/>
      Introduce an object for managing firewall rulesets (Daniel P. Berrange),<br/>
      Preserve error when tearing down nwfilter rules (Daniel P. Berrange),<br/>
      Remove two-stage construction of commands in nwfilter (Daniel P. Berrange),<br/>
      Merge nwfilter createRuleInstance driver into applyNewRules (Daniel P. Berrange),<br/>
      Push virNWFilterRuleInstPtr out of (eb|ip)tablesCreateRuleInstance (Daniel P. Berrange),<br/>
      Add helper methods for determining what protocol layer is used (Daniel P. Berrange),<br/>
      Remove nwfilter tech driver 'displayRuleInstance' callback (Daniel P. Berrange),<br/>
      Remove nwfilter tech driver 'removeRules' callback (Daniel P. Berrange),<br/>
      Remove pointless storage of var names in virNWFilterHashTable (Daniel P. Berrange),<br/>
      Remove virDomainNetType parameter from nwfilter drivers (Daniel P. Berrange),<br/>
      Move virNWFilterTechDriver struct out of nwfilter_conf.h (Daniel P. Berrange),<br/>
      Use virFileFindResource to locate CPU map XML (Daniel P. Berrange),<br/>
      Use virFileFindResource to locate driver plugins (Daniel P. Berrange),<br/>
      Use virFileFindResource to locate lock manager plugins (Daniel P. Berrange),<br/>
      Use virFileFindResource to locate iohelper for fdstream (Nehal J Wani),<br/>
      Use virFileFindResource to locate parthelper for storage backend (Nehal J Wani),<br/>
      Use virFileFindResource to locate libvirt_lxc for capabilities (Nehal J Wani),<br/>
      Use virFileFindResource to locate iohelper for virFileWrapperFdNew (Nehal J Wani),<br/>
      Activate build dir overrides in libvirtd, virtlockd, virsh &amp; tests (Daniel P. Berrange),<br/>
      Add helpers for resolving path to resources in build tree (Daniel P. Berrange),<br/>
      Add test suite for viralloc APIs (Daniel P. Berrange),<br/>
      Add support for addressing backing stores by index (Jiri Denemark),<br/>
      virStorageFileChainLookup: Return virStorageSourcePtr (Jiri Denemark),<br/>
      qemuDomainBlockCommit: Track virStorageSourcePtr for base (Jiri Denemark),<br/>
      qemuDomainBlockCommit: Don't track top_canon path separately (Jiri Denemark),<br/>
      tests: Test backing store XML formatting and parsing (Jiri Denemark),<br/>
      tests: More output options for xml2xml tests (Jiri Denemark),<br/>
      conf: Format and parse backing chains in domain XML (Jiri Denemark),<br/>
      conf: Output disk backing store details in domain XML (Jiri Denemark),<br/>
      util: storage: Invert the way recursive metadata retrieval works (Peter Krempa),<br/>
      util: virstoragefile: Don't mangle data stored about directories (Peter Krempa),<br/>
      storage: Move disk-&gt;backingChain to the recursive disk-&gt;src.backingStore (Peter Krempa),<br/>
      util: virstoragefile: Rename backingMeta to backingStore (Peter Krempa),<br/>
      util: virstorage: Kill struct virStorageFileMetadata (Peter Krempa),<br/>
      maint: Switch over from struct virStorageFileMetadata to virStorageSource (Peter Krempa),<br/>
      util: storagefile: Add fields from virStorageMetadata to virStorageSource (Peter Krempa),<br/>
      util: storagefile: Add function to free a virStorageSourcePtr (Peter Krempa),<br/>
      virstoragefile: Kill "backingStore" field from virStorageFileMetadata (Peter Krempa),<br/>
      util: virstoragefile: Don't use "backingStore" directly (Peter Krempa),<br/>
      util: storagefile: Rename "canonPath" to "path" in virStorageFileMetadata (Peter Krempa),<br/>
      util: storage: Rename "path" to "relPath" in virStorageFileMetadata (Peter Krempa),<br/>
      storage: util: Clean up arguments of virStorageFileGetMetadataInternal (Peter Krempa),<br/>
      util: storage: Move checking of the actual backing image to the worker (Peter Krempa),<br/>
      util: storage: Remove obsolete argument virStorageFileGetMetadataInternal (Peter Krempa),<br/>
      util: storagefile: Always store raw backing name in the metadata (Peter Krempa),<br/>
      qemu: unexport qemuDiskChainCheckBroken (Peter Krempa),<br/>
      bhyve: bhyveDomainDefineXML fixes (Roman Bogorodskiy),<br/>
      PPC64 prefers to set pci-ohci controller as default USB controller (Li Zhang),<br/>
      Make virDomainVcpuPinDel return void (Ján Tomko),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      bhyve: domainCreateXML (Wojciech Macek),<br/>
      Remove QEMU_CAPS_MACHINE_USB_OPT from ComputeCmdFlags (Ján Tomko),<br/>
      conf: split &lt;disk&gt; schema into more pieces (Eric Blake),<br/>
      conf: set up for per-grammar overrides in schemas (Eric Blake),<br/>
      conf: restrict external snapshots to backing store formats (Eric Blake),<br/>
      conf: move storage formats to common RNG file (Eric Blake),<br/>
      conf: better &lt;disk&gt; interleaving in schema (Eric Blake),<br/>
      conf: create common storage RNG grammar file (Eric Blake),<br/>
      conf: delete internal directory field (Eric Blake),<br/>
      conf: tweak chain lookup internals (Eric Blake),<br/>
      conf: drop redundant parameter to chain lookup (Eric Blake),<br/>
      conf: report error on chain lookup failure (Eric Blake),<br/>
      util: new virFileRelLinkPointsTo function (Eric Blake),<br/>
      conf: test backing chain lookup (Eric Blake),<br/>
      Introduce --without-pm-utils to get rid of pm-is-supported dependency (Cédric Bosdonnat),<br/>
      conf: delete useless backingStoreFormat field (Eric Blake),<br/>
      conf: return backing information separately from metadata (Eric Blake),<br/>
      conf: delete useless backingStoreIsFile field (Eric Blake),<br/>
      conf: expose probe for non-local storage (Eric Blake),<br/>
      conf: provide details on network backing store (Eric Blake),<br/>
      conf: make virstoragetest debug easier (Eric Blake),<br/>
      cpu: Properly check input parameters (Jiri Denemark),<br/>
      Clean up virCgroupGetPercpuStats (Ján Tomko),<br/>
      Rename id, max_id to need_cpus, total_cpus (Ján Tomko),<br/>
      Extend virCgroupGetPercpuStats to fill in vcputime too (Ján Tomko),<br/>
      Fix return value of virCgroupGetPercpuStats (Ján Tomko),<br/>
      Don't require domain obj in qemuDomainGetPercpuStats (Ján Tomko),<br/>
      conf: test for more fields (Eric Blake),<br/>
      conf: start testing contents of the new backing chain fields (Eric Blake),<br/>
      conf: track more fields in backing chain metadata (Eric Blake),<br/>
      conf: rename some test fields (Eric Blake),<br/>
      conf: earlier allocation during backing chain crawl (Eric Blake),<br/>
      conf: track user vs. canonical name through full chain lookup (Eric Blake),<br/>
      qemu: Unexport qemuBuildNetworkDriveURI() (Peter Krempa),<br/>
      qemu: Refactor qemuGetDriveSourceString to take virStorageSourcePtr (Peter Krempa),<br/>
      storage: Refactor location of metadata for storage drive access to files (Peter Krempa),<br/>
      storage: Refactor storage file initialization to use virStorageSourcePtr (Peter Krempa),<br/>
      conf: Refactor helpers to retrieve actual storage type (Peter Krempa),<br/>
      tests: use virBhyveCapsBuild in bhyvexml2argv test (Roman Bogorodskiy),<br/>
      conf: another refactor of virstoragetest (Eric Blake),<br/>
      conf: interleave virstoragetest structs (Eric Blake),<br/>
      conf: test for more scenarios (Eric Blake),<br/>
      conf: fix detection of infinite backing loop (Eric Blake),<br/>
      vmware: set the driver version (Jean-Baptiste Rouault),<br/>
      tests: add bhyve xml2xml test (Roman Bogorodskiy),<br/>
      bhyve: add domain metadata support (Roman Bogorodskiy),<br/>
      bhyve: fix ATTRIBUTE_NONNULL usage (Roman Bogorodskiy),<br/>
      Use a static initializer for static mutexes (Daniel P. Berrange),<br/>
      Add syntax check to validate capitalization of abbreviations (Daniel P. Berrange),<br/>
      Replace Pci with PCI throughout (Daniel P. Berrange),<br/>
      Replace Usb with USB throughout (Daniel P. Berrange),<br/>
      Replace Scsi with SCSI throughout (Daniel P. Berrange),<br/>
      Switch systemd test to use generic dbus mock (Daniel P. Berrange),<br/>
      Create a re-usable DBus LD_PRELOAD mock library (Daniel P. Berrange),<br/>
      Introduce a new set of helper macros for mocking symbols (Daniel P. Berrange),<br/>
      bhyve: connectCompareCPU support (Wojciech Macek),<br/>
      bhyve: create capabilities submodule (Wojciech Macek),<br/>
      bhyve: support for connectBaselineCPU (Wojciech Macek),<br/>
      interface: dump inactive xml when interface isn't active (Laine Stump),<br/>
      hash: add common utility functions (Eric Blake),<br/>
      bhyve: add xml2argv tests for console (Roman Bogorodskiy),<br/>
      bhyve: add console support through nmdm device (Roman Bogorodskiy),<br/>
      bhyve: domain autostart support (David Shane Holden),<br/>
      conf: track when storage type is still undetermined (Eric Blake),<br/>
      tests: refactor virstoragetest for less stack space (Eric Blake),<br/>
      tests: use C99 initialization for storage test (Eric Blake),<br/>
      libxl: Set disk format for empty cdrom device (Stefan Bader),<br/>
      libxl: Use id from virDomainObj inside the driver (Stefan Bader),<br/>
      Add redirdevs to ABI stability check (Ján Tomko),<br/>
      virsh: Make 'exit' action same as 'quit' (Li Yang),<br/>
      Include PCI address in the error in virDomainNetFindIdx (Ján Tomko),<br/>
      Move error reporting into virDomainNetFindIdx (Ján Tomko),<br/>
      tests: simplify storage test cleanup (Eric Blake),<br/>
      storage: Report error from VolOpen by default (Cole Robinson),<br/>
      conf: modify tracking of encrypted images (Eric Blake),<br/>
      conf: drop redundant parameters during probe (Eric Blake),<br/>
      conf: track sizes directly in source struct (Eric Blake),<br/>
      conf: use common struct in storage volumes (Eric Blake),<br/>
      conf: move volume structs to util/ (Eric Blake),<br/>
      conf: tweak volume target struct details (Eric Blake),<br/>
      conf: manage disk source by struct instead of pieces (Eric Blake),<br/>
      virsh: man: delete the unexpected character in snapshot-list (Shanzhi Yu),<br/>
      maint: fix spelling errors in disk pools (Eric Blake),<br/>
      conf: let snapshots share disk source struct (Eric Blake),<br/>
      conf: move common disk source functions (Eric Blake),<br/>
      util: don't support loopback and nbd when setuid (Eric Blake),<br/>
      util: move detection of shared filesystems (Eric Blake),<br/>
      conf: move storage source type to util/ (Eric Blake),<br/>
      conf: move storage secret type to util/ (Eric Blake),<br/>
      conf: move source pool type to util/ (Eric Blake),<br/>
      conf: move storage encryption type to util/ (Eric Blake),<br/>
      conf: move network disk protocol type to util/ (Eric Blake),<br/>
      conf: move host disk type to util/ (Eric Blake),<br/>
      conf: split network host structs to util/ (Eric Blake),<br/>
      conf: split security label structs to util/ (Eric Blake),<br/>
      maint: ensure src/ directory includes are clean (Eric Blake),<br/>
      storage: gluster: Implement storage pool lookup (Peter Krempa),<br/>
      storage: netfs: Support lookup of glusterfs pool sources (Peter Krempa),<br/>
      storage: netfs: Split up and tidy up NFS storage pool source function (Peter Krempa)<br/>
      </li>

      <li>Cleanups:<br/>
      tests: drop dead code from argv2xml and xml2xml (Eric Blake),<br/>
      qemu: remove unneeded forward declaration (Martin Kletzander)<br/>
      </li>
    </ul>

    <h3>1.2.3: Apr 01 2014</h3>
    <ul>
      <li>Features:<br/>
      add new virDomainCoreDumpWithFormat API (Qiao Nuohan),<br/>
      conf: Introduce virDomainDeviceGetInfo API (Jiri Denemark),<br/>
      more features and fixes on bhyve driver (Roman Bogorodskiy),<br/>
      lot of cleanups and improvement on the Xen driver (Chunyan Liu, Jim Fehlig)<br/>
      </li>

      <li>Documentation:<br/>
      virsh: man: Fix spelling of parameters for --memspec in snapshot-create-as (Shanzhi Yu),<br/>
      util: fix a typo in virprocess.c and d (Hongwei Bi),<br/>
      cgroups: fix typo about LXC cgroups (Jean-Baptiste Rouault),<br/>
      daemon: Enhance documentation for changing NOFILE limit (Jiri Denemark),<br/>
      domiftune: Reword bandwidth clearing paragraph (Michal Privoznik),<br/>
      conf: consistent comments about disk enum usage (Eric Blake),<br/>
      qemu.conf: Mention virtlockd in @lock_manager description (Michal Privoznik),<br/>
      add VMmanager to web apps (Martin Kletzander),<br/>
      storage: Explicitly state that it's possible to have non-unique key (Peter Krempa),<br/>
      typo fix (Roman Bogorodskiy)<br/>
      </li>

      <li>Portability:<br/>
      Prohibit Windows special chars in filenames (Matthias Bolte),<br/>
      tests: Fix SCSI test data filenames for Windows (Matthias Bolte),<br/>
      apparmor: Fix build after split of disk source metadata (Peter Krempa),<br/>
      Fix build on mingw32 (Ján Tomko),<br/>
      build: Fix build with old automake (Jiri Denemark),<br/>
      Fix build with qemu driver disabled (Roman Bogorodskiy),<br/>
      Fix type mismatch of virNetDev*NetConfig on non-Linux (Ján Tomko),<br/>
      virIdentityGetSystem: don't fail if SELinux is disabled (Michael Chapman)<br/>
      </li>

      <li>Bug Fixes:<br/>
      build: fix syntax-check for storage_backend (Martin Kletzander),<br/>
      gluster: Fix "key" attribute for gluster volumes (Peter Krempa),<br/>
      Fix Memory Leak in testMessageArrayRef() (Nehal J Wani),<br/>
      virsh: fix 'help event' (Eric Blake),<br/>
      bhyve: don't leak tap devices on failures (Roman Bogorodskiy),<br/>
      storage: gluster: Fix crash when initialization of storage backend fails (Peter Krempa),<br/>
      Fix virNodeDeviceListCaps always returns empty (Jincheng Miao),<br/>
      Create hostdevmgr in UserRuntimeDirectory for session libvirt (Ján Tomko),<br/>
      Remove double free in virHostdevManagerDispose (Ján Tomko),<br/>
      Fix apparmor profile to make vfio pci passthrough work (Cédric Bosdonnat),<br/>
      Fixed regression in apparmor profiles for qemu brought by 43c030f (Cédric Bosdonnat),<br/>
      Fix Memory Leak in virQEMUCapsInitGuestFromBinary() (Nehal J Wani),<br/>
      Fix memory leak in testGetCaps() (Nehal J Wani),<br/>
      network: fix problems with SRV records (Laine Stump),<br/>
      Free groups in case of a partial match (Ján Tomko),<br/>
      qemuDomainAttachDeviceFlags: Parse device xml as inactive (Michal Privoznik),<br/>
      Coverity: Resolve a RESOURCE_LEAK (John Ferlan),<br/>
      Coverity: Resolve a FORWARD_NULL (John Ferlan),<br/>
      Coverity: Resolve a CHECKED_RETURN message (John Ferlan),<br/>
      bhyve: don't fail on busy tap devices (Roman Bogorodskiy),<br/>
      libxl: Create log directory earlier (Stefan Bader),<br/>
      sanlock: Forbid VIR_DOMAIN_LOCK_FAILURE_RESTART (Jiri Denemark),<br/>
      sanlock: Forbid VIR_DOMAIN_LOCK_FAILURE_IGNORE (Jiri Denemark),<br/>
      vmware: fix parse of disk source (Eric Blake),<br/>
      qemuDomainGetImageIds: Skip &lt;seclabel/&gt; without label (Michal Privoznik),<br/>
      cgroup: Fix start VMs coincidently failed (Wang Yufei),<br/>
      Remove bogus call to dbus_set_error_from_message (Daniel P. Berrange),<br/>
      Remove bogus unref in virDBusMessageRead (Daniel P. Berrange),<br/>
      Check boot order on device attach (Jiri Denemark),<br/>
      qemu: Return meaningful error when qemu dies early (Jiri Denemark),<br/>
      Ignore missing files on pool refresh (Ján Tomko),<br/>
      Ignore char devices in storage pools by default (Ján Tomko),<br/>
      is_selinux_enabled() returns -1 on error, account for this. (Scott Sullivan),<br/>
      Fix unitialized data in virSocketAddrMask (Daniel P. Berrange),<br/>
      Fix virQEMUCapsLoadCache leaks (Ján Tomko),<br/>
      virNetClientSetTLSSession: Restore original signal mask (Michal Privoznik),<br/>
      nwfilter: Fix double free of pointer (Stefan Berger),<br/>
      build: Make sure src/util/virprobe.h is distributed (Jiri Denemark),<br/>
      qemuhotplugtest: Fix mem-leaking testcases (Nehal J Wani),<br/>
      build: Fix make distcheck (Martin Kletzander),<br/>
      virNetServerNewPostExecRestart: Initialize @max_anonymous_clients (Michal Privoznik),<br/>
      Fix memory leak in virDomainChrSourceDefClear() (Nehal J Wani),<br/>
      Fix memory leak in virDomainSnapshotDiskDefClear() (Nehal J Wani),<br/>
      bhyve: allow to destroy only active domains (Roman Bogorodskiy),<br/>
      Fix leak on OOM when creating nwfilter rule instances (Daniel P. Berrange),<br/>
      Avoid warning message from libxl driver on non-Xen kernels (Daniel P. Berrange),<br/>
      Fix mistakes in checking return values (Daniel P. Berrange),<br/>
      Fix issue found by coverity and cleanup (Pavel Hrdina),<br/>
      XMLToNative: Parse XML as INACTIVE (Cole Robinson),<br/>
      qemu: XMLToNative: Don't open vhostfd (Cole Robinson),<br/>
      qemu: XMLToNative: Don't show -S (Cole Robinson),<br/>
      qemu: cleanup tap devices on FreeBSD (Roman Bogorodskiy),<br/>
      openvzRegister: Check for error return (John Ferlan),<br/>
      nwfilter: Fix rule priority problem (Stefan Berger),<br/>
      hotplug:Fix log mistake in qemuMonitorAddNetdev (Wang Rui),<br/>
      libxl: Check for control_d string to decide about dom0 (Stefan Bader),<br/>
      vircrypto: fix Invalid write in virCryptoHashString() (Nehal J Wani),<br/>
      Load CPU map from builddir when run uninstalled (Jiri Denemark),<br/>
      nwfilter: Add missing goto err_exit in error path (Stefan Berger),<br/>
      Fix sec label setup when attaching to QEMU processes (Daniel P. Berrange),<br/>
      storage: Fix bugs in VIR_APPEND_ELEMENT series (John Ferlan),<br/>
      Remove broken error reporting in QEMU mac filtering (Daniel P. Berrange),<br/>
      BZ1072677: Avoid freeing of 0 file descriptor (Stefan Berger),<br/>
      Add a mutex to serialize updates to firewall (Daniel P. Berrange),<br/>
      Fix locking in virsh console (Roman Bogorodskiy),<br/>
      qemu: Reject unsupported tuning in session mode (Martin Kletzander),<br/>
      virt-login-shell: silence coverity warning (Eric Blake),<br/>
      Fix missing char dev lock path case in configure (Roman Bogorodskiy),<br/>
      storage: Error out when attempting to vol-upload into a remote pool (Peter Krempa),<br/>
      build: fix cppi warning (Eric Blake),<br/>
      nwfilter: Increase buffer size for libpcap (Stefan Berger)<br/>
      </li>

      <li>Improvements:<br/>
      storage: Rename VolOpenCheckMode to VolOpen (Cole Robinson),<br/>
      storage: move block format lookup to shared UpdateVolInfo (Cole Robinson),<br/>
      storage: Rename UpdateVolInfoFlags to UpdateVolInfo (Cole Robinson),<br/>
      util: storagefile: Don't pursue backing chain of NULL image (Peter Krempa),<br/>
      storage: pool: Fix XML indentation in pool source lookup (Peter Krempa),<br/>
      ESX: Add support for virtualHW version 10 (Dawid Zamirski),<br/>
      Modify help information of virsh list command (Li Yang),<br/>
      bhyve: add domainLookupByID (Wojciech Macek),<br/>
      bhyve: add xml2args unittest (Roman Bogorodskiy),<br/>
      Move virBhyveTapGetRealDeviceName to virnetdevtap (Roman Bogorodskiy),<br/>
      Shift the for loop over matched vars by one (Ján Tomko),<br/>
      Use VIR_STRNDUP instead of modifying the matched string (Ján Tomko),<br/>
      Simplify the loop in virCommandRunRegex (Ján Tomko),<br/>
      Remove useless 'maxReg' variable (Ján Tomko),<br/>
      qemu: add unit tests for the capabilities xml (Francesco Romani),<br/>
      qemu: extract guest capabilities initialization (Francesco Romani),<br/>
      qemu: export disk snapshot support in capabilities (Francesco Romani),<br/>
      Show the real cpu shares value in live XML (Ján Tomko),<br/>
      Treat zero cpu shares as a valid value (Ján Tomko),<br/>
      qemu: remove redundant virQEMUDriverGetConfig (Tomoki Sekiyama),<br/>
      Add a rule for indenting labels (Ján Tomko),<br/>
      Indent top-level labels by one space in tools/ (Ján Tomko),<br/>
      Indent top-level labels by one space in tests/ (Ján Tomko),<br/>
      Indent top-level labels by one space in the rest of src/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/xen/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/vbox/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/util/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/test/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/storage/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/rpc/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/remote/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/qemu/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/parallels/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/nwfilter/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/network/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/lxc/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/locking/ (Ján Tomko),<br/>
      Indent top-level labels by one space in libvirt.c (Ján Tomko),<br/>
      Indent top-level labels by one space in src/libxl/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/esx/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/cpu/ (Ján Tomko),<br/>
      Indent top-level labels by one space in src/conf/ (Ján Tomko),<br/>
      Indent top-level labels by one space in examples/ (Ján Tomko),<br/>
      Indent top-level labels by one space in daemon/ (Ján Tomko),<br/>
      util: Sanitize ATTRIBUTE_NONNULL use in viriscsi.h (Peter Krempa),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      allow "virsh dump --memory-only" specify dump format (Qiao Nuohan),<br/>
      qemu: add support for virDomainCoreDumpWithFormat API (Qiao Nuohan),<br/>
      qemu: add qemuMonitorGetDumpGuestMemoryCapability (Qiao Nuohan),<br/>
      conf: prepare to track multiple host source files per &lt;disk&gt; (Eric Blake),<br/>
      conf: use disk source accessors in xenxs/ (Eric Blake),<br/>
      conf: use disk source accessors in xen/ (Eric Blake),<br/>
      conf: use disk source accessors in vmx/ (Eric Blake),<br/>
      conf: use disk source accessors in vmware/ (Eric Blake),<br/>
      conf: use disk source accessors in vbox/ (Eric Blake),<br/>
      conf: use disk source accessors in uml/ (Eric Blake),<br/>
      conf: use disk source accessors in security/ (Eric Blake),<br/>
      conf: use disk source accessors in qemu/ (Eric Blake),<br/>
      conf: use disk source accessors in phyp/ (Eric Blake),<br/>
      conf: use disk source accessors in parallels/ (Eric Blake),<br/>
      conf: use disk source accessors in lxc/ (Eric Blake),<br/>
      conf: use disk source accessors in locking/ (Eric Blake),<br/>
      conf: use disk source accessors in libxl/ (Eric Blake),<br/>
      conf: use disk source accessors in esx/ (Eric Blake),<br/>
      conf: use disk source accessors in bhyve/ (Eric Blake),<br/>
      conf: use disk source accessors in conf/ (Eric Blake),<br/>
      conf: accessors for common source information (Eric Blake),<br/>
      bhyve: add domainCreateWithFlags support (Roman Bogorodskiy),<br/>
      bhyve: MAC address configuration (Wojciech Macek),<br/>
      libxl_driver.c: cleanup code (Chunyan Liu),<br/>
      Introduce virFDStreamOpenPTY (Roman Bogorodskiy),<br/>
      Add stubs for virDBusCreateReply{,V} (Ján Tomko),<br/>
      libvirt support to force convergence of live guest migration (Chegu Vinod),<br/>
      Allow caller to handle DBus error messages (Daniel P. Berrange),<br/>
      Introduce alternate way to encode/decode arrays in DBus messages (Daniel P. Berrange),<br/>
      Add DBus helper methods for creating reply messages (Daniel P. Berrange),<br/>
      Refactor dbus helper methods for method calls (Daniel P. Berrange),<br/>
      virlog: Modify virLogParseDefaultPriority's comment of return value (Zhou Yimin),<br/>
      Fix typo in configure.ac (Ján Tomko),<br/>
      Define ISCSIADM unconditionally (Ján Tomko),<br/>
      Pass action to virDomainDefCompatibleDevice (Jiri Denemark),<br/>
      Fix usage of virDomainDefCompatibleDevice (Jiri Denemark),<br/>
      tests: Set abs_*dir in a consistent way (Jiri Denemark),<br/>
      qemu: allow filtering events by regex (Eric Blake),<br/>
      qemu: enable monitor event filtering by name (Eric Blake),<br/>
      qemu: enable monitor event reporting (Eric Blake),<br/>
      qemu: wire up RPC for qemu monitor events (Eric Blake),<br/>
      qemu: create object for qemu monitor events (Eric Blake),<br/>
      qemu: virsh wrapper for qemu events (Eric Blake),<br/>
      qemu: new API for tracking arbitrary monitor events (Eric Blake),<br/>
      Fix indentation in iscsi storage backend (Ján Tomko),<br/>
      Add test for virISCSIScanTargets (Ján Tomko),<br/>
      Add test for virISCSIGetSession (Ján Tomko),<br/>
      Move functions using iscsiadm to viriscsi.c (Ján Tomko),<br/>
      Remove storage pool from the arguments of a few functions (Ján Tomko),<br/>
      Don't create iscsiadm command line in ISCSIPool{Start,Stop} (Ján Tomko),<br/>
      Switch virCommandRunRegex to use virStringSplit (Ján Tomko),<br/>
      Move virStorageBackendRun to vircommand (Ján Tomko),<br/>
      Sort includes in storage_backend_iscsi.c (Ján Tomko),<br/>
      Require K&amp;R styled curly braces around function bodies (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in remaining files (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/vbox/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/network/bridge_driver.c (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/lxc/lxc_driver.c (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/uml/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/test/test_driver.c (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/nwfilter/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/openvz/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/storage/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/qemu/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/conf/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/rpc/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/util/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in src/xen*/ (Martin Kletzander),<br/>
      Use K&amp;R style for curly braces in tests/ (Martin Kletzander),<br/>
      bhyve: host API support (Wojciech Macek),<br/>
      libxl: move domain event handler to libxl_domain (Jim Fehlig),<br/>
      libxl: include a pointer to the driver in libxlDomainObjPrivate (Jim Fehlig),<br/>
      libxl: move libxlVmStart to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlFreeMem to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlDomainSetVcpuAffinities to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlDoNodeGetInfo to libxl_conf (Jim Fehlig),<br/>
      libxl: move libxlDomainAutoCoreDump to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlDomEventsRegister to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlVmCleanup{,Job} to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlSaveImageOpen to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlDomainManagedSavePath to libxl_domain (Jim Fehlig),<br/>
      libxl: move libxlDomainEventQueue to libxl_domain (Jim Fehlig),<br/>
      Add ability to register callback for virCommand dry run (Daniel P. Berrange),<br/>
      Change CMD_STOPONERR(1) to use true (Daniel P. Berrange),<br/>
      Change 'int isTempChain' to bool in nwfilter (Daniel P. Berrange),<br/>
      Remove pointless return values in nwfilter methods (Daniel P. Berrange),<br/>
      Remove 'int stopOnError' parameters in nwfilter methods (Daniel P. Berrange),<br/>
      Remove pointless brackets around boolean (Daniel P. Berrange),<br/>
      Change 'int incoming' to 'bool incoming' in nwfilter code (Daniel P. Berrange),<br/>
      virhostdev.h: remove ATTRIBUTE_NONNULL from oldStateDir (Chunyan Liu),<br/>
      libxl: fix framebuffer port setting for HVM domains (Jim Fehlig),<br/>
      maint: avoid unbalanced {} across vbox #ifdef (Eric Blake),<br/>
      Remove global log buffer feature entirely (Daniel P. Berrange),<br/>
      Switch to filtering based on log source name instead of filename (Daniel P. Berrange),<br/>
      Add virLogSource variables to all source files (Daniel P. Berrange),<br/>
      Turn virLogSource into a struct instead of an enum (Daniel P. Berrange),<br/>
      Move dtrace probe macros into separate header file (Daniel P. Berrange),<br/>
      Refactor code that skips logging of error messages (Daniel P. Berrange),<br/>
      Reduce performance overhead of the global log buffer (Daniel P. Berrange),<br/>
      qemuDomainSetInterfaceParameters: Allow bandwidth clear out (Michal Privoznik),<br/>
      cfg.mk: Fix whitespaces (Martin Kletzander),<br/>
      Remove double space in file name comment check (Ján Tomko),<br/>
      Explicitly cast some switch parameters to enum (Martin Kletzander),<br/>
      Require spaces around equality comparisons (Martin Kletzander),<br/>
      Remove duplicate network model characters (Martin Kletzander),<br/>
      tests: cleanup object-locking test (Martin Kletzander),<br/>
      qemu: agent availability cleanup (Martin Kletzander),<br/>
      virsh: Prohibit virConnectOpen* functions in virsh (Martin Kletzander),<br/>
      virsh: Add keepalive in new vshConnect function (Martin Kletzander),<br/>
      virt-aa-helper: handle 9pfs (Felix Geyer),<br/>
      Give virNWFilterVarCombIterNext saner semantics (Daniel P. Berrange),<br/>
      bhyve: fix hostbridge device command generation (Roman Bogorodskiy),<br/>
      bhyve: add support for virtio block devices (Roman Bogorodskiy),<br/>
      Enforce attribute check of the virRegister functions (Pavel Hrdina),<br/>
      daemon: Introduce max_anonymous_clients (Michal Privoznik),<br/>
      virNetServer: Introduce unauth clients counter (Michal Privoznik),<br/>
      datatypes: Fix comments (Michael Chapman),<br/>
      bhyve: implement nodeGetInfo() (Roman Bogorodskiy),<br/>
      Add parameter to wait for lock in file locking APIs (Nehal J Wani),<br/>
      spec: move some dirs into appropriate subpackages (Michael Chapman),<br/>
      build: detect/prohibit hardcoded XML indent in syntax-check (Laine Stump),<br/>
      conf: eliminate hardcoded indentation in all remaining xml (Laine Stump),<br/>
      qemu: elminate hardcoded indent in capabilities cache XML (Laine Stump),<br/>
      util: eliminate hardcoded indent in virConnectSysInfo formatting (Laine Stump),<br/>
      qemu: eliminate hardcoded indent from migration cookie xml (Laine Stump),<br/>
      virsh: eliminate hardcoded indentation in xml generated for commands (Laine Stump),<br/>
      conf: eliminate hardcoded indent in volume/pool xml (Laine Stump),<br/>
      conf: eliminate hardcoded indentation in node device xml (Laine Stump),<br/>
      conf: eliminate hardcoded indentation in capabilities xml (Laine Stump),<br/>
      conf: eliminate hardcoded indentation in nwfilter xml (Laine Stump),<br/>
      conf: eliminate outmoded/odd indent method from interface xml (Laine Stump),<br/>
      conf: eliminate hardcoded indent from network xml (Laine Stump),<br/>
      conf: eliminate hardcoded indent from domain snapshot xml (Laine Stump),<br/>
      conf: eliminate hardcoded indent from domain xml (Laine Stump),<br/>
      nwfilter: Add ARP src/dst IP mask for ebtables ARP (Stefan Berger),<br/>
      hostdev: add virObject field to virHostdevManager struct (Jim Fehlig),<br/>
      Make ABI stability issue easier to debug (Jiri Denemark),<br/>
      qemu: Forbid "sgio" support for SCSI generic host device (Osier Yang),<br/>
      add pci passthrough to libxl driver (Chunyan Liu),<br/>
      add hostdev pci backend type for xen (Chunyan Liu),<br/>
      change lxc_hostdev.c to use virhostdev common library APIs (Chunyan Liu),<br/>
      add unit test for new virhostdev common library (Chunyan Liu),<br/>
      Add parameter checks/annotations to hostdev APIs (Chunyan Liu),<br/>
      add 3 wrapper functions for prepare/reattach/update domain hostdevs (Chunyan Liu),<br/>
      improve virHostdevUpdate* parameters to make it more widely used (Chunyan Liu),<br/>
      Capitalize USB, PCI and SCSI in hostdev variables (Daniel P. Berrange),<br/>
      Remove redundant duplicated 'Hostdev' string method names (Daniel P. Berrange),<br/>
      Capitalize USB, PCI and SCSI in hostdev methods (Chunyan Liu),<br/>
      Fixed const-ness of parameters in netdev/hostdev code (Daniel P. Berrange),<br/>
      improve parameter name to let it more meaningful (Chunyan Liu),<br/>
      move virHostdevNodeDevice* to virhostdev.c (Chunyan Liu),<br/>
      extract general code of NodeDeviceReset (Chunyan Liu),<br/>
      extract general code of NodeDeviceReAttach (Chunyan Liu),<br/>
      extract general code of NodeDeviceDetach (Chunyan Liu),<br/>
      move virHostdevReAttachHostScsiDevices to virhostdev.c (Chunyan Liu),<br/>
      pass driver name as parameter to virHostdevReAttachScciHostdevs (Chunyan Liu),<br/>
      extract general code from qemuDomainReAttachHostScsiDevices (Chunyan Liu),<br/>
      move virHostdevReAttachUsbHostdevs to virhostdev.c (Chunyan Liu),<br/>
      pass driver name as paramter to virHostdevReAttachUsbHostdevs (Chunyan Liu),<br/>
      extract general code from qemuDomainReAttachHostUsbDevices (Chunyan Liu),<br/>
      move virHostdevPrepareHostSCSIDevices to virhostdev.c (Chunyan Liu),<br/>
      pass driver name as parameter to virHostdevPrepareSCSIDevices (Chunyan Liu),<br/>
      extract general code from qemuPrepareHostSCSIDevices (Chunyan Liu),<br/>
      move virHostdevPrepareHostUSBDevices to virhostdev.c (Chunyan Liu),<br/>
      pass driver name to virHostdevPrepareUSBDevices (Chunyan Liu),<br/>
      rename qemu*USBDevices to virHostdev*USBDevices (Chunyan Liu),<br/>
      extract general code from qemuPrepareHostUSBDevices (Chunyan Liu),<br/>
      move virHostdevUpdate* functions to virhostdev.c (Chunyan Liu),<br/>
      pass driver_name as parameter of virHostdevUpdate*Hostdevs functions (Chunyan Liu),<br/>
      extract general code from qemuUpdateActiveScsiHostdevs (Chunyan Liu),<br/>
      extract general code from qemuUpdateActiveUsbHostdevs (Chunyan Liu),<br/>
      extract general code from qemuUpdateActivePciHostdevs (Chunyan Liu),<br/>
      move virHostdevPrepare(ReAttach)PCIDevices to virhostdev.c (Chunyan Liu),<br/>
      rename qemuReAttachPciDevice to virHostdevReAttachPciDevice (Daniel P. Berrange),<br/>
      Conditionally wait for kvm_assigned_device cleanup (Chunyan Liu),<br/>
      pass driver name as a parameter to virHostdevReAttachPCIDevices (Chunyan Liu),<br/>
      extract general code from qemuDomainReAttachHostdevDevices (Chunyan Liu),<br/>
      pass driver name as a parameter to virHostdevPrepareHostdevPCIDevices (Chunyan Liu),<br/>
      rename qemuGet*PciHostDeviceList to virHostdevGet*PciHostDeviceList (Chunyan Liu),<br/>
      rename qemu*NetConfigRestore/Replace to virHostdevNetConfigRestore/Replace (Chunyan Liu),<br/>
      extract general code from qemuPrepareHostdevPCIDevices (Chunyan Liu),<br/>
      qemu_hostdev: move netconfig file location to virhostdev stateDir (Chunyan Liu),<br/>
      qemu_hostdev: move ColdBoot as a flag (Chunyan Liu),<br/>
      qemu_hostdev: move cfg-&gt;relaxedACS as a flag (Chunyan Liu),<br/>
      lxc: use general virhostdev lists instead of its own (Chunyan Liu),<br/>
      qemu: use general virhostdev lists instead of its own (Chunyan Liu),<br/>
      qemu: remove functions used internally only from qemu_hostdev.h (Chunyan Liu),<br/>
      qemu: reuse hostdev interfaces to avoid duplicate (Chunyan Liu),<br/>
      update qemuPrepareHostUSBDevices parameters to keep consistency (Chunyan Liu),<br/>
      virhostdev: use virObject to virHostdevManager to keep reference (Chunyan Liu),<br/>
      Introduce vircommandpriv.h for functions used by tests (Ján Tomko),<br/>
      Use size_t for ndevice in pool source definition (Ján Tomko),<br/>
      Introduce virStoragePoolSourceDeviceClear (Ján Tomko),<br/>
      Change virStorageBackendISCSISession 'probe' arg to bool (Ján Tomko),<br/>
      qemu: don't munge user input during block commit (Eric Blake),<br/>
      iptables: don't log command probe failures (Eric Blake),<br/>
      libxl: support sexpr in native to XML conversion (Jim Fehlig),<br/>
      Remove unused ebtablesRemoveForwardPolicyReject method (Daniel P. Berrange),<br/>
      Remove worthless ebtRules data structure (Daniel P. Berrange),<br/>
      Remove data structure holding list of ebtables rules (Daniel P. Berrange),<br/>
      Remove unused variables from ebtablesContext (Daniel P. Berrange),<br/>
      Make ebtablesForwardPolicyReject static (Daniel P. Berrange),<br/>
      Remove decl of method which doesn't exist in virebtables.h (Daniel P. Berrange),<br/>
      Remove many decls from bridge driver platform header (Daniel P. Berrange),<br/>
      Cache result of QEMU capabilities extraction (Daniel P. Berrange),<br/>
      Change QEMU capabilities cache to check ctime instead of mtime (Daniel P. Berrange),<br/>
      Add helper APIs to track if libvirtd or loadable modules have changed (Daniel P. Berrange),<br/>
      virSecurityDACSetSecurityImageLabel: Unmark @def as unused (Michal Privoznik),<br/>
      tests: Distribute securityselinuxhelperdata (Jiri Denemark),<br/>
      Convert lock driver plugins to use new crypto APIs (Daniel P. Berrange),<br/>
      Add helper APIs for generating cryptographic hashes (Daniel P. Berrange),<br/>
      Change file names in comments to match the files they are in (Ján Tomko),<br/>
      Wildcard ignore tests/*test instead of listing every one (Daniel P. Berrange),<br/>
      src/xenxs: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/xen: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/util: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/test: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/storage: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/rpc: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/qemu: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/phyp: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/parallels: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/openvz: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/nwfilter: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      src/lxc/: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      conf: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT (Michal Privoznik),<br/>
      virsh: Sort options alphabetically (Martin Kletzander),<br/>
      tests: Fix SELinux tests in VPATH build (Jiri Denemark),<br/>
      virscsi: Introduce virSCSIDeviceUsedByInfoFree (John Ferlan),<br/>
      tests: Test virIdentityGetSystem (Michael Chapman),<br/>
      tests: SELinux tests do not need to be skipped (Michael Chapman),<br/>
      tests: Flesh out securityselinuxhelper (Michael Chapman),<br/>
      spec: Let translations be properly updated (Jiri Denemark),<br/>
      datatypes: update comments of Dispose functions (Michael Chapman),<br/>
      qemu: monitor: Provide more information in generic block job error (Peter Krempa),<br/>
      storage: Don't lie about path used to look up in error message (Peter Krempa),<br/>
      storage: Avoid mangling paths of non-local filesystems when looking up (Peter Krempa),<br/>
      storage: Use cleanup label instead of out (Peter Krempa),<br/>
      virsh: volume: Fix lookup of volumes to provide better error messages (Peter Krempa),<br/>
      add virhostdev files to maintain global state of host devices (Chunyan Liu),<br/>
      add 'driver' info to used_by (Chunyan Liu),<br/>
      apparmor: handle "none" type (Cédric Bosdonnat),<br/>
      add support for apparmor in lxc-enter-namespace (Cédric Bosdonnat),<br/>
      apparmor: add debug traces when changing profile. (Cédric Bosdonnat),<br/>
      Make sure apparmor is started before libvirtd (Cédric Bosdonnat),<br/>
      LXC driver: generate apparmor profiles for guests (Cédric Bosdonnat),<br/>
      qemu: monitor: Fix error message and comment when getting cpu info (Peter Krempa),<br/>
      qemu: snapshot: Use better check when reverting external snapshots (Peter Krempa),<br/>
      qemuBuildNicDevStr: Adapt to new advisory on multiqueue (Michal Privoznik),<br/>
      Check if systemd is running before creating machines (Ján Tomko),<br/>
      Split out most of virDBusIsServiceEnabled (Ján Tomko),<br/>
      Don't always skip virportallocatortest (Ján Tomko),<br/>
      tests: Create privileged driver config in qemuxml2argvtest (Martin Kletzander),<br/>
      build: Include sys/wait.h in commandtest.c (Ján Tomko),<br/>
      nwfilter: Display the pcap errror message (Stefan Berger),<br/>
      nwfilter: Cap the poll timeout in the DHCP Snooping code (Stefan Berger),<br/>
      virsh: report exit status of failed lxc-enter-namespace (Eric Blake),<br/>
      virt-login-shell: saner exit value (Eric Blake),<br/>
      virt-login-shell: use single instead of double fork (Eric Blake),<br/>
      virFork: simplify semantics (Eric Blake),<br/>
      util: make it easier to grab only regular command exit (Eric Blake),<br/>
      util: make it easier to grab only regular process exit (Eric Blake),<br/>
      util: preserve exit status from mount namespace callback (Eric Blake),<br/>
      util: make it easier to reflect child exit status (Eric Blake),<br/>
      virFork: give specific status on failure prior to exec (Eric Blake),<br/>
      nwfilter: make ignoring non-zero status easier to follow (Eric Blake),<br/>
      qemu: Implement a stub cpuArchDriver.baseline() handler for arm (Oleg Strikov),<br/>
      Fix indentation in virsystemdmock (Ján Tomko),<br/>
      Replace space with a tab in the Makefile (Ján Tomko),<br/>
      Add a test for virUSBDeviceList functions (Ján Tomko),<br/>
      Add tests for virUSBDeviceFind functions (Ján Tomko),<br/>
      Generate a unique journald log for QEMU capabilities failure (Daniel P. Berrange),<br/>
      Bump version to 1.2.3 for new dev cycle (Michal Privoznik)<br/>
      </li>

      <li>Cleanups:<br/>
      util: remove useless comment for virCgroupMoveTask in vircgroup.c (Hongwei Bi),<br/>
      Don't leave empty first line in C source files (Martin Kletzander)<br/>
      </li>
    </ul>

    <h3>1.2.2: Mar 02 2014</h3>
    <ul>
      <li>Features:<br/>
      bhyve: add a basic driver (Roman Bogorodskiy),<br/>
      add LXC from native conversion tool (Cédric Bosdonnat),<br/>
      vbox: add support for v4.2.20+ and v4.3.4+ (Jean-Baptiste Rouault),<br/>
      Introduce Libvirt Wireshark dissector (Yuto KAWAMURA)<br/>
      </li>

      <li>Security:<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC hotunplug code (Daniel P. Berrange),<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC chardev hostdev hotplug (Daniel P. Berrange),<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC block hostdev hotplug (Daniel P. Berrange),<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC USB hotplug (Daniel P. Berrange),<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC disk hotplug (Daniel P. Berrange),<br/>
      CVE-2013-6456: Avoid unsafe use of /proc/$PID/root in LXC shutdown/reboot code (Eric Blake)<br/>
      </li>

      <li>Documentation:<br/>
      bhyve: add basic documentation (Roman Bogorodskiy),<br/>
      Add docs about use of systemd journal for logging (Daniel P. Berrange),<br/>
      Auto-generate the table of contents in logging doc (Daniel P. Berrange),<br/>
      Fix heading level in logging docs (Daniel P. Berrange),<br/>
      Document the keyboard as a valid input type (Ján Tomko),<br/>
      bandwidth: Adjust documentation (John Ferlan),<br/>
      remove &lt;auth&gt; from secret XML format (Ján Tomko),<br/>
      LXC: added some doc on domxml-from-native with mention of limitations (Cédric Bosdonnat),<br/>
      libxl: fix libxlDoDomainSave documentation (Jim Fehlig),<br/>
      grammar fixes in formatdomain (Chen Hanxiao),<br/>
      maint: fix grammar in conf file (Eric Blake),<br/>
      Fix minor typo in governance doc (Justin Clift),<br/>
      Write up the project governance process (Daniel P. Berrange),<br/>
      man: shm-merge-across-nodes is optional (Ján Tomko),<br/>
      docs/page.xls: remove unnecessary namespace attribute (Pavel Hrdina),<br/>
      add a permalink to html headers (Dan Kenigsberg),<br/>
      storage: Add document for possible problem on volume detection (Osier Yang),<br/>
      Add "note" for node-memory-tune (Osier Yang),<br/>
      Improve the document for nodesuspend (Osier Yang),<br/>
      refer to the correct event ID for DomainEventIOErrorReasonCallback (Claudio Bley),<br/>
      Add sample output of Wireshark dissector (Yuto KAWAMURA),<br/>
      Add missing space in &lt;clock&gt; documentation (Christophe Fergeau)<br/>
      </li>

      <li>Portability:<br/>
      build: skip virportallocatortest on cygwin (Eric Blake),<br/>
      build: ignore cygwin toolchain droppings (Eric Blake),<br/>
      build: avoid ld_preload tests on mingw (Eric Blake),<br/>
      build: fix cgroups on non-Linux (Eric Blake),<br/>
      build: fix build on 32-bit hosts (Eric Blake),<br/>
      maint: update to latest gnulib, for older autoconf (Eric Blake),<br/>
      Fix build of portallocator on mingw (Ján Tomko),<br/>
      lxc: Don't shadow global symbol "link" (Peter Krempa),<br/>
      storage: Fix build with older compilers afeter gluster snapshot series (Peter Krempa),<br/>
      spec: add missing dep of libvirt-daemon-config-network (Thierry Parmentelat),<br/>
      spec: require libvirt-daemon-driver-interface only when built (Thierry Parmentelat),<br/>
      Fixed build with clang. (Cédric Bosdonnat),<br/>
      Rename 'index' in virCapabilitiesGetCpusForNode (Ján Tomko),<br/>
      qemuxml2argvmock: Mock time() on non-linux platforms too (Michal Privoznik),<br/>
      build: Fix 'make rpm' in VPATH with wireshark (Martin Kletzander),<br/>
      Remove windows thread implementation in favour of pthreads (Daniel P. Berrange),<br/>
      Fix pthread_sigmask check for mingw32 without winpthreads (Daniel P. Berrange),<br/>
      Skip check-augeas-lockd when QEMU is disabled (Daniel P. Berrange),<br/>
      maint: add configure checks for BSD CPU affinity (Roman Bogorodskiy),<br/>
      BSD: implement virProcess{Get,Set}Affinity (Roman Bogorodskiy),<br/>
      tests: Fix PCI test data filenames for Windows (Matthias Bolte),<br/>
      wireshark: Fix VPATH build (Jiri Denemark),<br/>
      Honour prefix in wireshark install dir (Daniel P. Berrange),<br/>
      Use AC_PATH_PROG to search for dmidecode (Roman Bogorodskiy)<br/>
      </li>

      <li>Bug Fixes:<br/>
      bhyve: defined domains should be persistent (Roman Bogorodskiy),<br/>
      Fix journald PRIORITY values (Daniel P. Berrange),<br/>
      spec: Fix braces around macros (Peter Krempa),<br/>
      spec: Use correct versions of libgfapi in RHEL builds (Peter Krempa),<br/>
      network: unplug bandwidth and call networkRunHook only when appropriate (Laine Stump),<br/>
      network: don't even call networkRunHook if there is no network (Laine Stump),<br/>
      Fix memory leak in virSCSIDeviceListDel() (Nehal J Wani),<br/>
      libxl: queue domain event earlier in shutdown handler (Jim Fehlig),<br/>
      virsh: mark CPU usage field names as translatable (Ján Tomko),<br/>
      virsh: initialize str to NULL to solve a build issue (Chen Hanxiao),<br/>
      virsh: Don't leak buffer if GetFDs fails in cmdCreate (Ján Tomko),<br/>
      libvirt-guests: Wait for libvirtd to initialize (Michal Privoznik),<br/>
      virSystemdCreateMachine: Set dependencies for slices (Michal Privoznik),<br/>
      Ignore additional fields in iscsiadm output (Ján Tomko),<br/>
      libxl: always use libxlVmCleanupJob in shutdown thread (Jim Fehlig),<br/>
      qemu: adjust maxmem/maxvcpu computation (Eric Blake),<br/>
      Fix multiple bugs in LXC domainMemoryStats driver (Daniel P. Berrange),<br/>
      Fix misspelled cpuacct.usage_percpu in cgroup mock. (Thorsten Behrens),<br/>
      virsh: fix memleak when starting a guest with invalid fd (Jincheng Miao),<br/>
      networkRunHook: Run hook only if possible (Michal Privoznik),<br/>
      bridge_driver.h: Fix build --without-network (Michal Privoznik),<br/>
      Fix conflicting types of virInitctlSetRunLevel (Ján Tomko),<br/>
      Fix reset of cgroup when detaching USB device from LXC guests (Daniel P. Berrange),<br/>
      Fix path used for USB device attach with LXC (Daniel P. Berrange),<br/>
      Don't block use of USB with containers (Daniel P. Berrange),<br/>
      storage: gluster: Don't leak private data when storage file init fails (Peter Krempa),<br/>
      storage: handle NULL return from virGetStorageVol (Michael Chapman),<br/>
      Fix leaks in vircapstest (Ján Tomko),<br/>
      AppArmor: Fix the place where the template should be installed (Cédric Bosdonnat),<br/>
      Libvirt lose sheepdogs volumes on pool refresh or restart. When restarting sheepdog pool, all volumes are missing. This patch add automatically all volume from the added pool. (Joel SIMOES),<br/>
      maint: fix line numbers in check-aclrules reports (Yuri Myasoedov),<br/>
      qemu: Use correct permissions when determining the image chain (Peter Krempa),<br/>
      virpci: Resolve coverity issues (John Ferlan),<br/>
      qemu: keep pre-migration domain state after failed migration (Martin Kletzander),<br/>
      qemu: Fix crash in virDomainMemoryStats with old qemu (Jiri Denemark),<br/>
      network: disallow &lt;bandwidth&gt;/&lt;mac&gt; for bridged/macvtap/hostdev networks (Laine Stump),<br/>
      Honor blacklist for modprobe command (John Ferlan),<br/>
      qemu: be sure we're using the updated value of backend during hotplug (Laine Stump),<br/>
      Resolve Coverity dead_error_begin (John Ferlan),<br/>
      qemu: Fix the error message for scsi host device's shareable checking (Osier Yang),<br/>
      xen: fix parsing xend http response (Jim Fehlig),<br/>
      storage: Fix the memory leak (Osier Yang),<br/>
      Fix buffer size in linuxNodeGetCPUstats (Bing Bu Cao),<br/>
      util: Correct the NUMA node range checking (Osier Yang),<br/>
      qemu: Avoid crash in qemuDiskGetActualType (Peter Krempa),<br/>
      linuxNodeGetCPUStats: Correctly handle cpu prefix (Bing Bu Cao),<br/>
      qemu: snapshot: Forbid snapshots when backing is a scsi passthrough disk (Peter Krempa),<br/>
      qemu: snapshot: Avoid libvirtd crash when qemu crashes while snapshotting (Peter Krempa),<br/>
      lxc: Fix coverity (Martin Kletzander),<br/>
      qemu: Don't detach devices if passthrough doesn't work (Jincheng Miao),<br/>
      pci: Fix failure paths in detach (Jiri Denemark),<br/>
      virSecuritySELinuxSetFileconHelper: Don't fail on read-only NFS (Michal Privoznik),<br/>
      Fix possible memory leak in virsh-domain-monitor.c in cmdDomblklist (Pavel Hrdina)<br/>
      </li>

      <li>Improvements:<br/>
      virsh: add --all flag to 'event' command (Eric Blake),<br/>
      virsh: support remaining domain events (Eric Blake),<br/>
      bhyve: support domain undefine (Roman Bogorodskiy),<br/>
      Add comments describing the different log sources (Daniel P. Berrange),<br/>
      Include error domain and code in log messages from errors (Daniel P. Berrange),<br/>
      Send virLogMetadata fields onto the journal (Daniel P. Berrange),<br/>
      qemu: Enable 'host-passthrough' cpu mode for arm (Oleg Strikov),<br/>
      domblkstat: Produce error message that at least sounds like English (Michal Privoznik),<br/>
      virDomainBlockStats(Flags): Produce saner error message on empty disk path (Michal Privoznik),<br/>
      tests: avoid littering /tmp (Eric Blake),<br/>
      sanlock: Truncate domain names longer than SANLK_NAME_LEN (Jiri Denemark),<br/>
      maint: Fix minor typo (unkown) (Yuri Chornoivan),<br/>
      libxl: Recognise ARM architectures (Ian Campbell),<br/>
      virsh: Honour -q in domblklist, vcpupin and emulatorpin (Michal Privoznik),<br/>
      spec: make systemd_daemon usage configurable (Eric Blake),<br/>
      spec: require device-mapper-devel for storage-disk (Eric Blake),<br/>
      spec: explicitly avoid bhyve on Linux (Eric Blake),<br/>
      build: use --with-systemd-daemon as configure option (Eric Blake),<br/>
      virNetDevVethCreate: Serialize callers (Michal Privoznik),<br/>
      network: include plugged interface XML in "plugged" network hook (Laine Stump),<br/>
      conf: output actual netdev status in &lt;interface&gt; XML (Laine Stump),<br/>
      conf: new function virDomainActualNetDefContentsFormat (Laine Stump),<br/>
      conf: re-situate &lt;bandwidth&gt; element in &lt;interface&gt; (Laine Stump),<br/>
      conf: make virDomainNetDefFormat a public function (Laine Stump),<br/>
      conf: handle null pointer in virNetDevVlanFormat (Laine Stump),<br/>
      conf: clarify what is returned for actual bandwidth and vlan (Laine Stump),<br/>
      rbd: Set timeout options for librados (Wido den Hollander),<br/>
      rbd: Include return statuses from librados/librbd in logging (Wido den Hollander),<br/>
      virsh: kill over-engineered asprintf failure recovery (Eric Blake),<br/>
      virsh: use more compact VIR_ENUM_IMPL (Eric Blake),<br/>
      libxl: handle on_crash coredump actions (Jim Fehlig),<br/>
      libxl: add dump dir to libxlDriverConfig object (Jim Fehlig),<br/>
      libxl: honor domain lifecycle event configuration (Jim Fehlig),<br/>
      Ensure systemd cgroup ownership is delegated to container with userns (Richard Weinberger),<br/>
      bhyve: implement node information reporting (Roman Bogorodskiy),<br/>
      Add virStringReplace method for substring replacement (Daniel P. Berrange),<br/>
      Add virStringSearch method for regex matching (Manuel VIVES),<br/>
      virNetServerRun: Notify systemd that we're accepting clients (Michal Privoznik),<br/>
      Add a stub for virCgroupGetDomainTotalCpuStats (Ján Tomko),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      virsh: add net-event command (Eric Blake),<br/>
      virsh: add event command, for lifecycle events (Eric Blake),<br/>
      virsh: common code for waiting for an event (Eric Blake),<br/>
      virsh: common code for parsing --seconds (Eric Blake),<br/>
      libxl: queue shutdown event on domain shutdown (Jim Fehlig),<br/>
      Rename virDomainGetRootFilesystem to virDomainGetFilesystemForTarget (Daniel P. Berrange),<br/>
      Introduce new OOM testing support (Daniel P. Berrange),<br/>
      Add unit test for virCgroupGetPercpuStats. (Thorsten Behrens),<br/>
      Add unit test for virCgroupGetMemoryUsage. (Thorsten Behrens),<br/>
      Add unit test for virCgroupGetBlkioIo*Serviced (Thorsten Behrens),<br/>
      Widening API change - accept empty path for virDomainBlockStats (Thorsten Behrens),<br/>
      Implement lxcDomainBlockStats* for lxc driver (Thorsten Behrens),<br/>
      Implement domainGetCPUStats for lxc driver. (Thorsten Behrens),<br/>
      Make qemuGetDomainTotalCPUStats a virCgroup function. (Thorsten Behrens),<br/>
      Implement domainMemoryStats API slot for LXC driver. (Thorsten Behrens),<br/>
      Add util virCgroupGetBlkioIo*Serviced methods. (Thorsten Behrens),<br/>
      lxc: Add destroy support for suspended domains (Richard Weinberger),<br/>
      libxl: use job functions in libxlDomainSetSchedulerParametersFlags (Jim Fehlig),<br/>
      libxl: use job functions in libxlDomainSetAutostart (Jim Fehlig),<br/>
      libxl: use job functions in device attach and detach functions (Jim Fehlig),<br/>
      libxl: use job functions in vcpu set and pin functions (Jim Fehlig),<br/>
      libxl: use job functions in libxlDomainCoreDump (Jim Fehlig),<br/>
      libxl: use job functions in domain save operations (Jim Fehlig),<br/>
      libxl: use job functions when cleaning up a domain (Jim Fehlig),<br/>
      libxl: use job functions in libxlDomain{Suspend,Resume} (Jim Fehlig),<br/>
      libxl: use job functions in libxlDomainSetMemoryFlags (Jim Fehlig),<br/>
      libxl: use job functions in libxlVmStart (Jim Fehlig),<br/>
      libxl: Add job support to libxl driver (Jim Fehlig),<br/>
      libxl: remove libxlVmReap function (Jim Fehlig),<br/>
      libxl: always set vm id to -1 on shutdown (Jim Fehlig),<br/>
      qemu: Use virtio network device for aarch64/virt (Oleg Strikov),<br/>
      Add a default USB keyboard and USB mouse for PPC64 (Li Zhang),<br/>
      xen: format xen config for USB keyboard (Li Zhang),<br/>
      qemu: format qemu command line for USB keyboard (Li Zhang),<br/>
      qemu: Add USB keyboard capability (Li Zhang),<br/>
      conf: Remove the implicit PS2 devices for non-X86 platforms (Li Zhang),<br/>
      conf: Add keyboard input device type (Li Zhang),<br/>
      conf: Add one interface to add default input devices (Li Zhang),<br/>
      network: Taint networks that are using hook script (Michal Privoznik),<br/>
      network: Introduce network hooks (Michal Privoznik),<br/>
      network_conf: Expose virNetworkDefFormatInternal (Michal Privoznik),<br/>
      Add helper for running code in separate namespaces (Daniel P. Berrange),<br/>
      Add virFileMakeParentPath helper function (Daniel P. Berrange),<br/>
      Move check for cgroup devices ACL upfront in LXC hotplug (Daniel P. Berrange),<br/>
      Disks are always block devices, never character devices (Daniel P. Berrange),<br/>
      Record hotplugged USB device in LXC live guest config (Daniel P. Berrange),<br/>
      qemu: Implement VIR_DOMAIN_TAINT_HOOK (Michal Privoznik),<br/>
      virDomainTaintFlags: Introduce VIR_DOMAIN_TAINT_HOOK (Michal Privoznik),<br/>
      Add tests for secret XML parsing (Ján Tomko),<br/>
      Forgot to add lxcconf2xmldata to dist. (Cédric Bosdonnat),<br/>
      Support IPv6 in port allocator (Ján Tomko),<br/>
      Split out bind() from virPortAllocatorAcquire (Ján Tomko),<br/>
      qemu: snapshot: Add support for external active snapshots on gluster (Peter Krempa),<br/>
      qemu: snapshot: Use new APIs to detect presence of existing storage files (Peter Krempa),<br/>
      qemu: Switch snapshot deletion to the new API functions (Peter Krempa),<br/>
      storage: Add storage file backends for gluster (Peter Krempa),<br/>
      storage: add file functions for local and block files (Peter Krempa),<br/>
      storage: Add file storage APIs in the default storage driver (Peter Krempa),<br/>
      conf: Move qemuSnapshotDiskGetActualType to virDomainSnapshotDiskGetActualType (Peter Krempa),<br/>
      conf: Move qemuDiskGetActualType to virDomainDiskGetActualType (Peter Krempa),<br/>
      spec: add missing dep of libvirt-daemon-config-nwfilter (Eric Blake),<br/>
      lxc from native: removed now remaining useless line (Cédric Bosdonnat),<br/>
      Fix stream related spelling mistakes (Philipp Hahn),<br/>
      LXC from native: convert blkio throttle config (Cédric Bosdonnat),<br/>
      LXC from native: map vlan network type (Cédric Bosdonnat),<br/>
      LXC from native: map block filesystems (Cédric Bosdonnat),<br/>
      LXC from native: map lxc.arch to /domain/os/type@arch (Cédric Bosdonnat),<br/>
      LXC from native: add lxc.cgroup.blkio.* mapping (Cédric Bosdonnat),<br/>
      LXC from native: map lxc.cgroup.cpuset.* (Cédric Bosdonnat),<br/>
      LXC from native: map lxc.cgroup.cpu.* (Cédric Bosdonnat),<br/>
      LXC from native: migrate memory tuning (Cédric Bosdonnat),<br/>
      LXC from native: convert lxc.id_map into &lt;idmap&gt; (Cédric Bosdonnat),<br/>
      LXC from native: convert macvlan network configuration (Cédric Bosdonnat),<br/>
      LXC from native: convert lxc.tty to console devices (Cédric Bosdonnat),<br/>
      LXC from native: convert phys network types to net hostdev devices (Cédric Bosdonnat),<br/>
      LXC from native: migrate veth network configuration (Cédric Bosdonnat),<br/>
      LXC from native: implement no network conversion (Cédric Bosdonnat),<br/>
      LXC from native: migrate fstab and lxc.mount.entry (Cédric Bosdonnat),<br/>
      LXC from native: import rootfs (Cédric Bosdonnat),<br/>
      LXC driver: started implementing connectDomainXMLFromNative (Cédric Bosdonnat),<br/>
      Improve virConf parse to handle LXC config format (Cédric Bosdonnat),<br/>
      event: pass reason for PM events (Eric Blake),<br/>
      event: convert remaining domain events to new style (Eric Blake),<br/>
      event: client RPC protocol tweaks for domain lifecycle events (Eric Blake),<br/>
      event: prepare client to track domain callbackID (Eric Blake),<br/>
      event: server RPC protocol tweaks for domain lifecycle events (Eric Blake),<br/>
      event: dynamically manage server-side RPC domain events (Eric Blake),<br/>
      qemu: Implement a stub cpuArchDriver.baseline() handler for aarch64 (Oleg Strikov),<br/>
      libxl: register for domain events immediately after creation (Jim Fehlig),<br/>
      libxl: rename libxlCreateDomEvents to libxlDomEventsRegister (Jim Fehlig),<br/>
      vircapstest: Introduce virCapabilitiesGetCpusForNodemask test (Pradipta Kr. Banerjee),<br/>
      Handle non-sequential NUMA node numbers (Pradipta Kr. Banerjee),<br/>
      storage: gluster: Set volume metadata in a separate function (Peter Krempa),<br/>
      qemu: introduce spiceport chardev backend (Martin Kletzander),<br/>
      qemu: remove pointless condition (Martin Kletzander),<br/>
      qemu: rework '-serial none' (Martin Kletzander),<br/>
      conf: introduce spiceport chardev backend (Martin Kletzander),<br/>
      rbd: Use rbd_create3 to create RBD format 2 images by default (Wido den Hollander),<br/>
      build: correctly check for SOICGIFVLAN GET_VLAN_VID_CMD command (Laine Stump),<br/>
      virNetworkLoadState: Disallow mangled 'floor' element (Michal Privoznik),<br/>
      networkStartNetwork: Be more verbose (Michal Privoznik),<br/>
      qemu: hyperv: Add support for timer enlightenments (Peter Krempa),<br/>
      conf: Enforce supported options for certain timers (Peter Krempa),<br/>
      schema: Fix guest timer specification schema according to the docs (Peter Krempa),<br/>
      apparmor: Improve profiles (Felix Geyer),<br/>
      Add glusterfs to VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_POOL_TYPE (Christophe Fergeau),<br/>
      libxl: remove unneeded locking of driver when restoring (Jim Fehlig),<br/>
      libxl: improve subprocess handling (Jim Fehlig),<br/>
      libxl: handle domain shutdown events in a thread (Jim Fehlig),<br/>
      libxl: remove list of timer registrations from libxlDomainObjPrivate (Jim Fehlig),<br/>
      libxl: fix leaking libxlDomainObjPrivate (Jim Fehlig),<br/>
      qemu_driver: Introduce &lt;filesystem/&gt; support in device attach/detach (Matthieu Coudron),<br/>
      virDomainHostdev{Insert,Delete}: Replace VIR_REALLOC_N by VIR_{APPEND,DELETE}_ELEMENT (Matthieu Coudron),<br/>
      qemuxml2argvtest: Set timezone (Michal Privoznik),<br/>
      virsh: only report filled values in nodecpustats (Ján Tomko),<br/>
      BSD: implement nodeGetCPUStats (Roman Bogorodskiy),<br/>
      qemu: blockjob: Print correct file name in error message (Peter Krempa),<br/>
      maint: Change the text of the NULLSTR() macro to "&lt;null&gt;" (Peter Krempa),<br/>
      qemuxml2argvtest: Test localtime clock basis (Michal Privoznik),<br/>
      qemuBuildClockArgStr: Allow localtime clock basis (Michal Privoznik),<br/>
      Generate a valid imagelabel even for type 'none' (Ján Tomko),<br/>
      event: move event filtering to daemon (regression fix) (Eric Blake),<br/>
      rpm: create libvirt-wireshark sub-package (Eric Blake),<br/>
      tests: Add test for new virkmod functions (John Ferlan),<br/>
      utils: Introduce functions for kernel module manipulation (John Ferlan),<br/>
      network: change default of forwardPlainNames to 'yes' (Laine Stump),<br/>
      network: only prevent forwarding of DNS requests for unqualified names (Laine Stump),<br/>
      virnetdevbandwidthtest: Link with libxml2 (Michal Privoznik),<br/>
      spice: don't force user to specify spicevmc channel (Martin Kletzander),<br/>
      virnetdevbandwidthtest: Introduce some more tests (Michal Privoznik),<br/>
      virnetdevbandwidthtest: fix hard coded /sbin/tc (Cédric Bosdonnat),<br/>
      Push nwfilter update locking up to top level (Daniel P. Berrange),<br/>
      Add a read/write lock implementation (Daniel P. Berrange),<br/>
      tests: Modify the scsi util tests (Osier Yang),<br/>
      util: Accept test data path for scsi device's sg_path (Osier Yang),<br/>
      tests: Add tests for scsi utils (Osier Yang),<br/>
      util: Add one argument for several scsi utils (Osier Yang),<br/>
      qemu: Don't fail if the SCSI host device is shareable between domains (Osier Yang),<br/>
      virnetdevbandwidthtest: Introduce testVirNetDevBandwidthSet (Michal Privoznik),<br/>
      virCommand: Introduce virCommandSetDryRun (Michal Privoznik),<br/>
      snapshot: Add support for specifying snapshot disk backing type (Peter Krempa),<br/>
      tests: Add more tests for virConnectBaselineCPU (Jiri Denemark),<br/>
      cpu: Try to use source CPU model in virConnectBaselineCPU (Jiri Denemark),<br/>
      cpu: Fix VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES (Jiri Denemark),<br/>
      tests: Better support for VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES (Jiri Denemark),<br/>
      Reword error message for oversized cpu time fields (Ján Tomko),<br/>
      Simplify linuxNodeGetCPUStats (Ján Tomko),<br/>
      Add hw random number generator (/dev/hwrng) to cgroup ACL (Pradipta Kr. Banerjee),<br/>
      tests: Introduce virnetdevbandwidthtest (Michal Privoznik),<br/>
      Add test for linuxNodeGetCPUStats (Ján Tomko),<br/>
      Move test-local declarations to nodeinfopriv.h (Ján Tomko),<br/>
      qemu: Enable 'host-passthrough' cpu mode for aarch64 (Oleg Strikov),<br/>
      Block info query: Add check for transient domain (John Ferlan),<br/>
      maint: update to latest gnulib, for mingw improvements (Eric Blake),<br/>
      util: Add "shareable" field for virSCSIDevice struct (Osier Yang),<br/>
      storage: Fix autostart of pool with "fc_host" type adapter (Osier Yang),<br/>
      api: require write permission for guest agent interaction (Eric Blake),<br/>
      virtlockd: make re-exec more robust (Michael Chapman),<br/>
      build: add $(prefix) to SYSTEMD_UNIT_DIR (Laine Stump),<br/>
      spice: expose the QEMU disable file transfer option (Francesco Romani),<br/>
      spice: detect if qemu can disable file transfer (Francesco Romani),<br/>
      lxc: allow to setup throttle blkio cgroup through virsh (Gao feng),<br/>
      Add test for transient disk support in VMX files (Wout Mertens),<br/>
      Make syntax check notice assignments w/o surrounding spaces. (Thorsten Behrens),<br/>
      maint: align whitespaces with project conventions. (Thorsten Behrens),<br/>
      virpcitest: Test virPCIDeviceDetach failure (Jiri Denemark),<br/>
      virpcimock: Add PCI driver which always fails (Jiri Denemark),<br/>
      virpcitest: More tests for device detach and reattach (Jiri Denemark),<br/>
      virpcimock: Mock /sys/bus/pci/drivers_probe (Jiri Denemark),<br/>
      pci: Publish some internal code for virpcitest (Jiri Denemark),<br/>
      virpcitest: Show PCI device tested by each test (Jiri Denemark),<br/>
      pci: Make reattach work for unbound devices (Jiri Denemark),<br/>
      qemu: allow to setup throttle blkio cgroup through virsh (Gao feng),<br/>
      virsh: add setting throttle blkio cgroup option to blkiotune (Gao feng),<br/>
      blkio: Setting throttle blkio cgroup for domain (Gao feng),<br/>
      domain: introduce xml elements for throttle blkio cgroup (Gao feng),<br/>
      maint: replace remaining virLib*Error with better names (Eric Blake),<br/>
      maint: simplify driver registration at startup (Eric Blake),<br/>
      maint: clean up error reporting in migration (Eric Blake),<br/>
      maint: don't lose error on canceled migration (Eric Blake),<br/>
      maint: avoid nested use of virConnect{Ref,Close} (Eric Blake),<br/>
      maint: don't leave garbage on early API exit (Eric Blake),<br/>
      qemu: Change the default unix monitor timeout (Martin Kletzander),<br/>
      storage: Sheepdog: Separate creating of the volume from building (Peter Krempa),<br/>
      storage: RBD: Separate creating of the volume from building (Peter Krempa),<br/>
      storage: Support deletion of volumes on gluster pools (Peter Krempa),<br/>
      conf: Always use VIR_ERR_CONFIG_UNSUPPORTED on enumFromString() failures (Christophe Fergeau)<br/>
      </li>

      <li>Cleanups:<br/>
      build-sys: Removed unused variable from configure.ac (Christophe Fergeau),<br/>
      qemu: remove memset params array to zero in qemuDomainGetPercpuStats (Gao feng),<br/>
      util: Fix the indention (Osier Yang),<br/>
      virsh: Fix the string breaking style (Osier Yang)<br/>
      </li>
    </ul>

    <h3>1.2.1: Jan 16 2014</h3>
    <ul>
      <li>Security:<br/>
      CVE-2014-0028 event: filter global events by domain:getattr ACL (Eric Blake),<br/>
      CVE-2014-1447-2 Really don't crash if a connection closes early (Jiri Denemark),<br/>
      CVE-2014-1447-1 Don't crash if a connection closes early (Jiri Denemark),<br/>
      CVE-2013-6458-4 qemu: Fix job usage in virDomainGetBlockIoTune (Jiri Denemark),<br/>
      CVE-2013-6458-3 qemu: Fix job usage in qemuDomainBlockJobImpl (Jiri Denemark),<br/>
      CVE-2013-6458-2 qemu: Avoid using stale data in virDomainGetBlockInfo (Jiri Denemark),<br/>
      CVE-2013-6458-1 qemu: Do not access stale data in virDomainBlockStats (Jiri Denemark),<br/>
      CVE-2013-6457 libxl: avoid crashing if calling `virsh numatune' on inactive domain (Dario Faggioli),<br/>
      CVE-2013-6436: fix crash in lxcDomainGetMemoryParameters (Martin Kletzander)<br/>
      </li>

      <li>Documentation:<br/>
      mention maintenance branches (Eric Blake),<br/>
      Fix docs for PMWakeup/PMSuspend callback types (Claudio Bley),<br/>
      storage: fs: Fix comment for virStorageBackendFileSystemDelete (Peter Krempa),<br/>
      Clarify documentation on possible return values in case of errors (Claudio Bley),<br/>
      Add Documentation fields to systemd service files (Guido Günther),<br/>
      add LXC multi console command docs and a example (Chen Hanxiao),<br/>
      maint: fix comment typos in qemu numa code (Eric Blake),<br/>
      return paragraph must be last (Eric Blake),<br/>
      fix layout of code snippets (Eric Blake),<br/>
      improve event-related documentation (Eric Blake),<br/>
      virsh: man: Mention that volumes need to be in storage pool for undefine (Peter Krempa),<br/>
      fix address type for disks (Martin Kletzander),<br/>
      qemu: fix typo PCi =&gt; PCI (Martin Kletzander),<br/>
      tools: Fix virsh connect man page (Jiri Denemark),<br/>
      fix a typo in libvirt.h (Chen Hanxiao),<br/>
      fix recent typo (Eric Blake),<br/>
      Enhance memoryBacking/locked documentation (Jiri Denemark),<br/>
      fix double articles bug (Wang Yufei),<br/>
      Explicitly declaring that nodedev-destroy only works for vHBA (Osier Yang),<br/>
      fix some typos (Eric Blake),<br/>
      fix typo in previous patch (Eric Blake),<br/>
      fix typos in libvirt.h.in (Chen Hanxiao)<br/>
      </li>

      <li>Portability:<br/>
      build: fix build on mingw with winpthreads (Eric Blake),<br/>
      BSD: implement nodeGetMemoryStats (Roman Bogorodskiy),<br/>
      build: fix bootstrap with older autoconf (Eric Blake),<br/>
      AArch64: Porting of armv7l conditons to run qemu for aarch64. (Pranavkumar Sawargaonkar),<br/>
      vmware: os x support is broken (Denis Kondratenko),<br/>
      tests: fix syntax in previous patch (Eric Blake),<br/>
      aarch64: Fix sysinfo test. (Richard W.M. Jones),<br/>
      aarch64: Disable -fstack-protector. (Richard W.M. Jones),<br/>
      virnettlscontexttest fails with GNUTLS 3.0.28 (Cédric Bosdonnat),<br/>
      Fix build when default python is python3 (Lénaïc Huard),<br/>
      specfile: fix make rpm when with_driver_modules is 1 (Laine Stump),<br/>
      object: require maximal alignment in base class (Eric Blake),<br/>
      configure: Resolve compile issue in configure.ac (Adam Walters)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: Avoid operations on NULL monitor if VM fails early (Peter Krempa),<br/>
      Fix coverity complain in commandtest.c (Pavel Hrdina),<br/>
      Fix memory leak in securityselinuxlabeltest.c (Pavel Hrdina),<br/>
      Fix possible memory leak in util/virxml.c (Pavel Hrdina),<br/>
      Fix possible memory leak in phyp_driver.c (Pavel Hrdina),<br/>
      Fix memory leak in openvz_conf.c (Pavel Hrdina),<br/>
      Fix memory leak in testDomainCreateXMLMixed() (Nehal J Wani),<br/>
      schema: fix idmap validation (Eric Blake),<br/>
      event: don't queue NULL event on OOM (Eric Blake),<br/>
      virt-login-shell: fix regressions in behavior (Eric Blake),<br/>
      storage: fix crash when listing volumes or undefining a pool (Martin Kletzander),<br/>
      qemuBuildNicDevStr: Set vectors= on Multiqueue (Michal Privoznik),<br/>
      libxl: Fix devid init in libxlMakeNicList (Stefan Bader),<br/>
      LXC: create monitor socket under selinux context of domain (Gao feng),<br/>
      virsh: Use inactive definition when removing disk from config (Peter Krempa),<br/>
      virsh: Don't use legacy API if --current is used on device hot(un)plug (Peter Krempa),<br/>
      virConnect(Un)registerCloseCallback: Unlock @conn prior to error dispatch (Michal Privoznik),<br/>
      Allow to install apparmor profiles (Guido Günther),<br/>
      Fix bridge configuration when OUTPUT policy is DROP on the host (Lénaïc Huard),<br/>
      lxc_controller: Don't leak @name (Michal Privoznik),<br/>
      qemu: Fix job usage in qemuDomainBlockCopy (Jiri Denemark),<br/>
      Fix segmentation fault when accessing default qemu machine type (Yudai Yamagish),<br/>
      event: make deregister return value match docs (Eric Blake),<br/>
      qemuProcessStop: Don't overwrite any errors (Michal Privoznik),<br/>
      Fix argument order of qemuMigrationPerformJob(). (Minoru Usui),<br/>
      libxl: Fix initialization of nictype in libxl_device_nic (Jim Fehlig),<br/>
      qemu: range check numa memory placement mode (Peter Krempa),<br/>
      Fix explicit usage of default video PCI slots (Ján Tomko),<br/>
      maint: avoid nested public calls (Eric Blake),<br/>
      event: don't overwrite registration error message (Eric Blake),<br/>
      tests: sysinfotest: Actual/expected were swapped in error message. (Richard W.M. Jones),<br/>
      domain: don't try to interpret &lt;driver&gt; as virtio config for hostdev interfaces (Laine Stump),<br/>
      virkeycode: Allow ANSI_A (Michal Privoznik),<br/>
      interface: Take interface status into account when starting and destroying (Michal Privoznik),<br/>
      event-test: Unregister close callback (Michal Privoznik),<br/>
      qemu: re-add hostdev interfaces to hostdev array on libvirtd restart (Laine Stump),<br/>
      qemu: avoid duplicate security label restore on hostdev attach failure (Laine Stump),<br/>
      qemu: properly set MaxMemLock when hotplugging with VFIO (Laine Stump),<br/>
      PanicCheckABIStability: Need to check for existence (John Ferlan),<br/>
      libxl: fix segfault when domain create fail (Bamvor Jian Zhang),<br/>
      Fix crash in lxcDomainSetMemoryParameters (Martin Kletzander),<br/>
      storage: fix bogus target in gluster volume xml (Eric Blake),<br/>
      Fix crash in virsystemdtest with dbus 1.7.6 (Cédric Bosdonnat),<br/>
      Fix race leading to crash when setting up dbus watches (Daniel P. Berrange),<br/>
      libxl: libxl_get_max_cpus returning a libxl error from 4.4 onward (Dario Faggioli),<br/>
      virsh: domain: Fix undefine with storage of 'volume' disks (Peter Krempa),<br/>
      qemu: ask for -enable-fips when FIPS is required (Eric Blake),<br/>
      configure: make --with-test-suite work (Martin Kletzander),<br/>
      Fix memory leak in virObjectEventCallbackListRemoveID() (Nehal J Wani),<br/>
      qemu: check for reboot-timeout on monitor (Martin Kletzander),<br/>
      lxc: return -1 if failed to kill lxc process (Chen Hanxiao),<br/>
      Add another missing % on %{_libdir} macro (Laine Stump),<br/>
      Add missing % on %{_libdir} macro in RPM (Daniel P. Berrange),<br/>
      storage: fix omitted slash in gluster volume URI (Eric Blake),<br/>
      qemu_process: Read errors from child (Michal Privoznik),<br/>
      qemu: hotplug: Fix adding USB devices to the driver list (Cole Robinson),<br/>
      qemu: hotplug: Fix double free on USB collision (Cole Robinson),<br/>
      qemu: hotplug: Only label hostdev after checking device conflicts (Cole Robinson),<br/>
      lxcContainerMountFSDevPTS: Unify @ret usage pattern (Chen Hanxiao),<br/>
      conf: Fix XML formatting of RNG device info (Peter Krempa),<br/>
      qemu: snapshot: Fix incorrect disk type for auto-generated disks (Peter Krempa),<br/>
      virThreadPoolFree: Set n(Prio)Workers after the pool is locked (Michal Privoznik),<br/>
      qemuAgentDispose: Reset lastError (Wangyufei (James)),<br/>
      Fix memory leak in qemuBuildDriveStr() (Nehal J Wani),<br/>
      Don't overwrite errors from virConfReadFile (Daniel P. Berrange),<br/>
      virThreadPoolFree: Join worker threads (Michal Privoznik),<br/>
      qemu: fix live pinning to memory node on NUMA system (Shivaprasad G Bhat),<br/>
      storage_driver: Resolve Coverity CHECKED_RETURN warning (John Ferlan),<br/>
      bridge_driver: Resolve Coverity CHECKED_RETURN warning (John Ferlan),<br/>
      virnetserverclient: Fix conditional change HAVE_SASL to WITH_SASL (John Ferlan),<br/>
      virnetserverclient: Remove Coverity DEADCODE warning (John Ferlan),<br/>
      nwfilter: Remove Coverity DEADCODE warning (John Ferlan),<br/>
      qemu: report error on attempt to live change virtio-net queues (Laine Stump),<br/>
      daemon: Run virStateCleanup conditionally (Michal Privoznik),<br/>
      qemu: default to vfio for nodedev-detach (Laine Stump),<br/>
      Ensure to zero out the virDomainBlockJobInfo arg (Daniel P. Berrange),<br/>
      snapshot: conf: Fix NULL dereference when &lt;driver&gt; element is empty (Peter Krempa)<br/>
      </li>

      <li>Improvements:<br/>
      event: wire up RPC for server-side network event filtering (Eric Blake),<br/>
      event: add notion of remoteID for filtering client network events (Eric Blake),<br/>
      event: track callbackID on daemon side of RPC (Eric Blake),<br/>
      tests: be more explicit on qcow2 versions in virstoragetest (Eric Blake),<br/>
      Add Gao feng to the committers list (Gao feng),<br/>
      maint: ignore transient files during tests (Eric Blake),<br/>
      storage: FS: Tweak some comments and fix typos (Peter Krempa),<br/>
      Exercise the ABI stability check code in test suite (Daniel P. Berrange),<br/>
      storage: Improve error message when a storage backend is missing (Peter Krempa),<br/>
      storage: lvm: Avoid forward decl of virStorageBackendLogicalDeleteVol (Peter Krempa),<br/>
      maint: improve VIR_ERR_INVALID_DOMAIN_SNAPSHOT usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_NWFILTER usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_STREAM usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_SECRET usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_NODE_DEVICE usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_STORAGE_VOL usage (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_STORAGE_POOL usage (Eric Blake),<br/>
      test driver: Add authentication to test driver. (Richard W.M. Jones),<br/>
      maint: improve VIR_ERR_INVALID_INTERFACE usage (Eric Blake),<br/>
      event: clean up client side RPC code (Eric Blake),<br/>
      Make sure AC_ARG_WITH is always executed (Guido Günther),<br/>
      maint: improve VIR_ERR_INVALID_NETWORK usage (Eric Blake),<br/>
      conf: trivial typo fix (Martin Kletzander),<br/>
      maint: inline VIR_IS*_DOMAIN macro (Eric Blake),<br/>
      maint: improve VIR_ERR_INVALID_DOMAIN usage (Eric Blake),<br/>
      event: make network events easier to use without casts (Eric Blake),<br/>
      event: don't turn offline domain into global event (Eric Blake),<br/>
      event: don't allow mix of old- and new-style registration (Eric Blake),<br/>
      event: properly filter count of remaining events (Eric Blake),<br/>
      Read PCI class from sysfs class file instead of config space. (Thadeu Lima de Souza Cascardo),<br/>
      event: tighten scope of object_event (Eric Blake),<br/>
      event: don't let old-style events clobber per-domain events (Eric Blake),<br/>
      event: rename confusing variable in test, remote drivers (Eric Blake),<br/>
      event: share state driver between test:///default connections (Eric Blake),<br/>
      lxc_controller: Fix error message on missing --handshakefd (Michal Privoznik),<br/>
      maint: inline VIR_IS_CONNECT macro (Eric Blake),<br/>
      maint: Fix messy include of libvirt_internal.h (Peter Krempa),<br/>
      maint: improve VIR_ERR_INVALID_CONN usage (Eric Blake),<br/>
      maint: improve VIR_ERR_OPERATION_DENIED usage (Eric Blake),<br/>
      qemu: Clean up qemuDomainSetNumaParameters (Peter Krempa),<br/>
      storage: Use VIR_DELETE_ELEMENT instead of open coding (Peter Krempa),<br/>
      event: use newer array management macros (Eric Blake),<br/>
      event: use bool in more places (Eric Blake),<br/>
      maint: improve VIR_ERR_NO_SUPPORT usage (Eric Blake),<br/>
      event: remove unneeded virObjectEventGetEventID (Eric Blake),<br/>
      event: fix doc typos, and doc more public methods (Eric Blake),<br/>
      maint: reset error on entrance to public API (Eric Blake),<br/>
      maint: improve error condition style in public API (Eric Blake),<br/>
      maint: split long lines in invalidArg errors (Eric Blake),<br/>
      maint: move debug statements first in public API (Eric Blake),<br/>
      maint: improve debug of libvirt-{qemu,lxc} apis (Eric Blake),<br/>
      maint: consistent formatting in libvirt.c (Eric Blake),<br/>
      event: improve public API docs (Eric Blake),<br/>
      tests: virnetsockettest: Print the error if getifaddrs fails. (Richard W.M. Jones),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      maint: fix typo in error message (Eric Blake),<br/>
      interface: Introduce netcfInterfaceObjIsActive (Michal Privoznik),<br/>
      examples: Resurrect domsuspend example (Michal Privoznik),<br/>
      libxl: correctly handle affinity reset in virDomainPinVcpu[Flags] (Dario Faggioli),<br/>
      libxl: implement virDomainPinVcpuFlags (Dario Faggioli),<br/>
      libxl: implement virDomainGetVcpuPinInfo (Dario Faggioli),<br/>
      virt-login-shell: clean up usage (Eric Blake),<br/>
      storage: Avoid forward declaration of virStorageVolDelete (Peter Krempa),<br/>
      storage: Add gluster pool filter and fix virsh pool listing (Peter Krempa),<br/>
      snapshot: schema: Split out snapshot disk driver definition (Peter Krempa),<br/>
      Remove redefinition of bool type when --enable-test-locking (Daniel P. Berrange),<br/>
      Set the 'container_ttys' env variable for LXC consoles (Daniel P. Berrange),<br/>
      storage: resize vol against real allocated size (Michal Privoznik),<br/>
      Support transient attribute on vmware disks (Wout Mertens),<br/>
      LXC: Change incorrect error report in lxcContainerPivotRoot (Gao feng),<br/>
      Add debug output when registering event handlers (Daniel P. Berrange),<br/>
      Remove the event namespace concept (Daniel P. Berrange),<br/>
      Associate a dispatch function with the event objects (Daniel P. Berrange),<br/>
      Introduce abstract virNetworkEvent class (Daniel P. Berrange),<br/>
      Add 'detail' arg to network lifecycle event internals (Daniel P. Berrange),<br/>
      Update event demo program to support network events too (Daniel P. Berrange),<br/>
      Move examples/domain-events/event-c to examples/object-events (Daniel P. Berrange),<br/>
      qemu: add support for -device pvpanic (Hu Tao),<br/>
      conf: add support for panic device (Hu Tao),<br/>
      conf: introduce generic ISA address (Hu Tao),<br/>
      Bump version to 1.2.1 for new dev cycle (Daniel P. Berrange),<br/>
      rename virBlkioDeviceWeightPtr to virBlkioDevicePtr (Gao feng),<br/>
      rename virBlkioDeviceWeightArrayClear to virBlkioDeviceArrayClear (Gao feng),<br/>
      rename virDomainBlkioDeviceWeightParseXML to virDomainBlkioDeviceParseXML (Gao feng),<br/>
      storage: show gluster option in virsh --version=long (Eric Blake),<br/>
      Added default case with error for object event dispatching (Cédric Bosdonnat),<br/>
      Fixed indentation in src/conf/*_event* (Cédric Bosdonnat),<br/>
      Added network events to the bridged network driver (Cédric Bosdonnat),<br/>
      Add network events to the remote driver (Cédric Bosdonnat),<br/>
      Add network events unit tests (Cédric Bosdonnat),<br/>
      test driver: implemented network events (Cédric Bosdonnat),<br/>
      Added Network events API and virNetworkEventLifecycle. (Cédric Bosdonnat),<br/>
      storage_backend_rbd: rename "stat" variable (Michael Chapman),<br/>
      If we do not specify a readonly mount, we don't need to re-mount it again. (Chen Hanxiao),<br/>
      daemon/remote.c: renamed remoteDispatchDomainEventSend (Cédric Bosdonnat),<br/>
      test driver: renamed testDomainEventQueue into testObjectEventQueue (Cédric Bosdonnat),<br/>
      Extracted common parts of domain_event.[ch] to object_event.[ch] (Cédric Bosdonnat),<br/>
      Split the virObjectEvent and virDomainEvent* to separate them after (Cédric Bosdonnat),<br/>
      Renamed virDomainEventTimer to virObjectEventTimer (Cédric Bosdonnat),<br/>
      Add object event namespaces for the event IDs (Cédric Bosdonnat),<br/>
      Use virObjectEventPtr instead of virDomainEventPtr (Cédric Bosdonnat),<br/>
      Create virDomainEventDeviceRemoved and remove the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventBalloonChange to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventTrayChange to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventDiskChange to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventBlockJob to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventGraphics to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventIOError to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventWatchdog to get rid of the huge union (Cédric Bosdonnat),<br/>
      Create virDomainEventRTCChange to get rid of the huge union (Cédric Bosdonnat),<br/>
      Renamed virDomainEventNewInternal to virDomainEventNew (Cédric Bosdonnat),<br/>
      Renamed virDomainEventNew* to virDomainEventLifecycleNew* (Cédric Bosdonnat),<br/>
      Create virDomainEventLifecycle to start removing the huge union (Cédric Bosdonnat),<br/>
      virObject-ified virDomainEvent (Cédric Bosdonnat),<br/>
      Created virObjectEventStateRegisterID (Cédric Bosdonnat),<br/>
      Renamed virDomainEventCallbackList* to virObjectEventCallbackList* (Cédric Bosdonnat),<br/>
      Renamed virDomainEventState to virObjectEventState (Cédric Bosdonnat),<br/>
      Renamed virDomainEventQueue to virObjectEventQueue (Cédric Bosdonnat),<br/>
      Renamed virDomainMeta to virObjectMeta (Cédric Bosdonnat),<br/>
      Rename virDomainEventCallback to virObjectEventCallback (Cédric Bosdonnat),<br/>
      Added domain start/stop/define/undefine event unit tests (Cédric Bosdonnat),<br/>
      spec: clean up libvirtd and virtlockd service mgmt (Michael Chapman),<br/>
      virtlockd: use common exit path when out-of-memory (Michael Chapman),<br/>
      virtlockd: improve initscripts (Michael Chapman),<br/>
      virtlockd: improve systemd units (Michael Chapman),<br/>
      conf: don't format memtune with unlimited values (Martin Kletzander),<br/>
      qemu: Fix minor inconsistency in error message (Martin Kletzander),<br/>
      qemu: Report VIR_DOMAIN_MEMORY_PARAM_UNLIMITED properly (Martin Kletzander),<br/>
      cgroups: Redefine what "unlimited" means wrt memory limits (Martin Kletzander),<br/>
      spec: move driver-specific files to driver subpackages (Jim Fehlig),<br/>
      spec: Define hypervisor-specific files together (Jim Fehlig),<br/>
      spec: Conditionally specify some hypervisor-specific files (Jim Fehlig),<br/>
      spec: Fix files list when building without driver modules (Jim Fehlig),<br/>
      spec: Only add libvirt-daemon pre install script if building with qemu (Jim Fehlig),<br/>
      spec: Fix unconditional references of nwfilter (Jim Fehlig),<br/>
      Cgroup: Replace 'newpath' with 'newPath' (Zhou Yimin),<br/>
      Add qxl ram size to ABI stability check (Ján Tomko),<br/>
      qemu: Improve error when setting invalid count of vcpus via agent (Peter Krempa),<br/>
      qemu: hotplug: Mark 2 private functions as static (Cole Robinson),<br/>
      qemu: Fix indentation in qemuTranslateDiskSourcePool (Peter Krempa),<br/>
      domainsnapshotxml2xmltest: Add test case for empty driver element (Peter Krempa),<br/>
      domainsnapshotxml2xmltest: Add existing files as new tests (Peter Krempa),<br/>
      domainsnapshotxml2xml: Move files with conflicting names (Peter Krempa),<br/>
      domainsnapshotxml2xmltest: Allow for better testing of snapshots (Peter Krempa),<br/>
      domainsnapshotxml2xmltest: Clean up labels and use bool instead of int (Peter Krempa),<br/>
      maint: Kill usage of atoi() (Peter Krempa),<br/>
      src: Align make output (Michal Privoznik),<br/>
      tests: add forgotten boot-strict test files (Laine Stump),<br/>
      qemu: add "-boot strict" to commandline whenever possible (Laine Stump),<br/>
      qemu: snapshots: Declare supported and unsupported snapshot configs (Peter Krempa),<br/>
      qemu: Clear old translated pool source (Peter Krempa),<br/>
      qemu: Refactor disk source string formatting (Peter Krempa),<br/>
      qemu: Unify formatting of RBD sources (Peter Krempa),<br/>
      qemu: Split out NBD command generation (Peter Krempa),<br/>
      qemu: Migrate sheepdog source generation into common function (Peter Krempa),<br/>
      qemu: Use qemuBuildNetworkDriveURI to handle http/ftp and friends (Peter Krempa),<br/>
      qemu: Simplify call pattern of qemuBuildDriveURIString (Peter Krempa),<br/>
      qemu: Split out formatting of network disk source URI (Peter Krempa),<br/>
      qemu: Refactor qemuTranslateDiskSourcePool (Peter Krempa),<br/>
      virsh: improve grammar in error message (Eric Blake),<br/>
      qemu: snapshot: Add functions similar to disk source pool translation (Peter Krempa),<br/>
      qemu: snapshot: Touch up error message (Peter Krempa),<br/>
      conf: Add helper do clear disk source authentication struct (Peter Krempa),<br/>
      qemu: snapshot: Detect internal snapshots also for sheepdog and RBD (Peter Krempa),<br/>
      conf: Add functions to copy and free network disk source definitions (Peter Krempa),<br/>
      snapshot: conf: Use common parsing and formatting functions for source (Peter Krempa),<br/>
      conf: Export disk source formatter and parser (Peter Krempa),<br/>
      conf: Split out seclabel formating code for disk source (Peter Krempa),<br/>
      conf: Clean up virDomainDiskSourceDefFormatInternal (Peter Krempa),<br/>
      conf: Support disk source formatting without needing a virDomainDiskDefPtr (Peter Krempa),<br/>
      tests: Fix comment for fake storage pool driver (Peter Krempa),<br/>
      qemuxml2argv: Add test for disk type='volume' with iSCSI pools (Peter Krempa),<br/>
      qemuxml2argv: Add test to verify correct usage of disk type="volume" (Peter Krempa),<br/>
      test: Implement fake storage pool driver in qemuxml2argv test (Peter Krempa),<br/>
      util: Use new array management macros (Osier Yang)<br/>
      </li>

      <li>Cleanups:<br/>
      storage: Break long lines and clean up spaces in storage backend header (Peter Krempa),<br/>
      event: fix typo in previous patch (Eric Blake),<br/>
      Remove stray semicolon after pragma macros (Daniel P. Berrange),<br/>
      examples: Remove broken bad example (Peter Krempa)<br/>
      </li>
    </ul>

  </body>
</html>
