<?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 (2015)</h1>
    <p>Here is the list of official releases made during the year 2015.
    A similar list for <a href="news-2014.html">2014</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.3.0: Dec 09 2015</h3>
    <ul>
      <li>Features:<br/>
      virt-admin and administration API (Erik Skultety, Martin Kletzander),<br/>
      various improvements in virtio devices support (Ján Tomko, Marc-André Lureau),<br/>
      log daemon, logging improvements and protocol (Daniel P. Berrange)<br/>
      </li>

      <li>Documentation:<br/>
      libvirt: Update virDomainSetMemory description (Nikolay Shirokovskiy),<br/>
      virt-admin: Provide a man page for virt-admin (Erik Skultety),<br/>
      Enhance documentation of virDomainDetachDevice (Jiri Denemark),<br/>
      qemu: monitor: Explain logic of qemuMonitorGetCPUInfo (Peter Krempa),<br/>
      document virCommandRunRegex function (Christian Loehle),<br/>
      libvirt-domain: Fix typo in debug message (Cole Robinson),<br/>
      qemu: Explain mlock limit size more in detail (Peter Krempa),<br/>
      virsh.pod: improve attach-interface section (Pavel Hrdina),<br/>
      virnetdev: Fix function comments for virNetDevGetFeatures (John Ferlan),<br/>
      virnetdev: Document reasons for ignoring some SIOCETHTOOL errno values (John Ferlan)<br/>
      </li>

      <li>Portability:<br/>
      network: selectively disable -Wcast-align in virNetDevParseDadStatus (Ian Campbell),<br/>
      log_manager: Include configmake.h last (Michal Privoznik),<br/>
      virtlogd: Fix build without DBus (Martin Kletzander),<br/>
      virtlogd: use %llu to print 64bit types (Guido Günther)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: fix memory leak in opening log file (Daniel P. Berrange),<br/>
      qemu: Automatic SCSI controller creation in SCSI disk hotplug broken (Boris Fiuczynski),<br/>
      qemu: domain: Prevent overflows in memory alignment code (Peter Krempa),<br/>
      conf: Revert some code to resolve issues for hostdev hotplug (Boris Fiuczynski),<br/>
      virsh: report errors for empty strings (Ján Tomko),<br/>
      bridge: check for invalid MAC in networkGetDHCPLeases (Ján Tomko),<br/>
      qemu_agent: fix deadlock in qemuProcessHandleAgentEOF (Wang Yufei),<br/>
      include: Install libvirt-common.h (Martin Kletzander),<br/>
      tools: fix output of list with state-shutoff (Wei Jiangang),<br/>
      virlogd: fix crash if log file exists and it's larger the maxlen (Pavel Hrdina),<br/>
      systemd: Escape only needed characters for machined (Martin Kletzander),<br/>
      logging: remove reference to non-existent augeas files (Daniel P. Berrange),<br/>
      virtlockd: fix misc memory leaks and other bugs (Daniel P. Berrange),<br/>
      systemd: Escape machine name for machined (Martin Kletzander),<br/>
      schema: use a better regex for listen addresses (Ján Tomko),<br/>
      apparmor: add missing qemu binaries (Guido Günther),<br/>
      storage: Change virStorageBackendVolOpen to use virFileOpenAs (John Ferlan),<br/>
      storage: Really fix setting mode for backend exec in NFS root-squash env (John Ferlan),<br/>
      qemu: Add ppc64-specific math to qemuDomainGetMlockLimitBytes() (Andrea Bolognani),<br/>
      libxl: don't unlock virDomainObj if refcnt is 0 (Jim Fehlig),<br/>
      libxl: unref libxlDriverConfig object (Jim Fehlig),<br/>
      qemu: Fix build error in Coverity environment (John Ferlan),<br/>
      virSetUIDGID: Don't leak supplementary groups (Richard Weinberger),<br/>
      locking: Add io_timeout to sanlock (Michal Privoznik),<br/>
      libvirt-guests: Disable shutdown timeout (Guido Günther),<br/>
      tpm: adapt sysfs cancel path for new TPM driver (Stefan Berger),<br/>
      bhyve: monitor: do not override domain's privateData (Roman Bogorodskiy),<br/>
      storage: Don't assume storage pool exists for FC/SCSI refresh thread (John Ferlan),<br/>
      domain-conf: reorder usb controllers so the master is first (Pavel Hrdina),<br/>
      qemu: fix parsing of -sdl arg (Daniel P. Berrange),<br/>
      qemu: handle floppy disk bus when parsing command line argv (Daniel P. Berrange),<br/>
      qemu: hotplug: Fix mlock limit handling on memory hotplug (Peter Krempa),<br/>
      Revert "utils: Remove the logging of errors from virNetDevSendEthtoolIoctl" (Daniel P. Berrange),<br/>
      qemu: migration: Actually error out on unsupported migration flag (Peter Krempa),<br/>
      qemu: migration: Properly parse memory hotplug migration flag (Peter Krempa),<br/>
      network: Remove extraneous ATTRIBUTE_NONNULL for virNetDevWaitDadFinish (John Ferlan),<br/>
      virnetdev: Check correct return value for virNetDevFeatureAvailable (John Ferlan),<br/>
      storage: On 'buildVol' failure don't delete the volume (John Ferlan),<br/>
      Revert "storage: Prior to creating a volume, refresh the pool" (John Ferlan),<br/>
      qemu: Fix memory leak in qemuProcessStart (Jiri Denemark),<br/>
      qemu: Use correct type when calling qemuPrepareNVRAM (Jiri Denemark)<br/>
      </li>

      <li>Improvements:<br/>
      Revert "libxl: implement virDomainInterfaceStats" (Jim Fehlig),<br/>
      rpm: explicitly enable &amp; start virtlogd on install (Daniel P. Berrange),<br/>
      libvirtd: enable virtlockd/virtlogd socket activation on install (Daniel P. Berrange),<br/>
      logging: validate flags passed from client in virtlogd (Daniel P. Berrange),<br/>
      logging: change log protocol to be more reusable (Daniel P. Berrange),<br/>
      logging: preserve driver, dom name &amp; uuid against log file (Daniel P. Berrange),<br/>
      qemu: include hostname in QEMU log files (Daniel P. Berrange),<br/>
      rotatingfile: mark log files as close-on-exec (Daniel P. Berrange),<br/>
      libvirtd: require virtlogd to start before libvirtd (Guido Günther),<br/>
      schema: Allow &gt; UINT_MAX KiB of memory for NUMA nodes (Peter Krempa),<br/>
      virsh: remove custom error for cpulist from cmdIOThreadPin (Ján Tomko),<br/>
      libxl: implement virDomainInterfaceStats (Joao Martins),<br/>
      tests: Run virnetdaemontest iff WITH_YAJL (Michal Privoznik),<br/>
      admin: Distribute libvirt-admin.conf (Martin Kletzander),<br/>
      admin: Rename virAdmConnect to virAdmDaemon (Martin Kletzander),<br/>
      spec: Temporarily disable new admin-related files (Martin Kletzander),<br/>
      admin: Include admin_remote.c in the dist package (Martin Kletzander),<br/>
      build: Create needed folders without dependency tracking (Martin Kletzander),<br/>
      util: Avoid variable named 'truncate' shadowing global declaration (Martin Kletzander),<br/>
      conf: Split virDomainObjList into a separate file (Michal Privoznik),<br/>
      qemu: build command line for virtio-input-host device (Ján Tomko),<br/>
      qemu: add passed-through input devs to cgroup ACL (Ján Tomko),<br/>
      security: label the evdev for input device passthrough (Ján Tomko),<br/>
      conf: add XML for input device passthrough (Ján Tomko),<br/>
      qemu: add capability for virtio-input-host-device (Ján Tomko),<br/>
      qemu: build command line for virtio input devices (Ján Tomko),<br/>
      conf: parse and format virtio input bus in domain XML (Ján Tomko),<br/>
      qemu: add capabilities for virtio input devices (Ján Tomko),<br/>
      admin: Introduce virAdmConnectGetLibVersion (Erik Skultety),<br/>
      admin: Add support for connection close callbacks (Erik Skultety),<br/>
      admin: Add support for URI aliases (Erik Skultety),<br/>
      livirt: Move URI alias matching to util (Erik Skultety),<br/>
      admin: Add URI support and introduce virAdmGetDefaultURI (Erik Skultety),<br/>
      admin: Do not generate remoteAdminConnect{Open,Close} (Erik Skultety),<br/>
      admin: Move remote admin API version to a separate module (Erik Skultety),<br/>
      admin: Introduce virAdmConnectIsAlive (Erik Skultety),<br/>
      virt-admin: Introduce first working skeleton (Erik Skultety),<br/>
      admin: introduce virAdmGetVersion (Erik Skultety),<br/>
      libvirt: Move config getters to util (Erik Skultety),<br/>
      admin: Introduce libvirt-admin.conf (Erik Skultety),<br/>
      libvirt: introduce libvirt/libvirt-common.h.in (Erik Skultety),<br/>
      qemu: add virtio-gpu virgl support (Marc-André Lureau),<br/>
      qemu: add virtio video device (Marc-André Lureau),<br/>
      domain: replace bool accel{2d, 3d} with a tristate (Marc-André Lureau),<br/>
      Replace support{2d,3d} with accel{2d,3d} (Marc-André Lureau),<br/>
      logging: avoid variables called 'daemon' due to function clash (Daniel P. Berrange),<br/>
      logging: inhibit virtlogd shutdown while log files are open (Daniel P. Berrange),<br/>
      qemu: add support for sending QEMU stdout/stderr to virtlogd (Daniel P. Berrange),<br/>
      qemu: convert monitor to use qemuDomainLogContextPtr indirectly (Daniel P. Berrange),<br/>
      qemu: convert process stop/attach to use qemuDomainLogContextPtr (Daniel P. Berrange),<br/>
      qemu: convert qemuLogOperation to take a qemuDomainLogContextPtr (Daniel P. Berrange),<br/>
      qemu: change qemuDomainTaint APIs to accept qemuDomainLogContextPtr (Daniel P. Berrange),<br/>
      qemu: convert log file creation to use qemuDomainLogContextPtr (Daniel P. Berrange),<br/>
      qemu: introduce a qemuDomainLogContext object (Daniel P. Berrange),<br/>
      qemu: unify code for reporting errors from QEMU log files (Daniel P. Berrange),<br/>
      qemu: remove writing to QEMU log file for rename operation (Daniel P. Berrange),<br/>
      logging: add client for virtlogd daemon (Daniel P. Berrange),<br/>
      logging: introduce log handling protocol (Daniel P. Berrange),<br/>
      Import stripped down virtlockd code as basis of virtlogd (Daniel P. Berrange),<br/>
      util: add APIs for reading/writing from/to rotating files (Daniel P. Berrange),<br/>
      virsh: Try to keep printed XML pretty with change-media (Martin Kletzander),<br/>
      qemu: Use qemuProcessLaunch in migration Prepare phase (Jiri Denemark),<br/>
      qemu: Skip starting NBD servers for offline migration (Jiri Denemark),<br/>
      qemu: Kill QEMU process if Prepare phase fails (Jiri Denemark),<br/>
      qemu: Separate incoming URI generation from qemuMigrationPrepareAny (Jiri Denemark),<br/>
      qemu: Introduce qemuProcessFinishStartup (Jiri Denemark),<br/>
      qemu: Introduce qemuProcessLaunch (Jiri Denemark),<br/>
      qemu: Introduce qemuProcessInit (Jiri Denemark),<br/>
      conf: reject multiple panic devices of same model (Dmitry Andreev),<br/>
      Allow multiple panic devices (Dmitry Andreev),<br/>
      qemu: add support for hv_crash feature as a panic device (Dmitry Andreev),<br/>
      tests: add tests for the new panic device attribute - 'model' (Dmitry Andreev),<br/>
      conf: add 'model' attribute for panic device with values isa, pseries, hyperv (Dmitry Andreev),<br/>
      conf: refactor code for checking ABI stability of panic device (Dmitry Andreev),<br/>
      nodedev: report maxCount for virtual_functions capability (Laine Stump),<br/>
      conf: support reporting maxCount attribute for virtual_functions cap (Laine Stump),<br/>
      Post-release version bump to 1.3.0 (Pavel Hrdina),<br/>
      conf: Drop useless check when parsing cpu scheduler info (Peter Krempa),<br/>
      qemu: pass the asyncJob to qemuProcessStartCPUs (Ján Tomko),<br/>
      xenapi: Refactor extraction of vcpu count (Peter Krempa),<br/>
      phyp: Refactor extraction of vcpu count (Peter Krempa),<br/>
      openvz: Refactor extraction of vcpu count (Peter Krempa),<br/>
      hyperv: Allocate 'def' via virDomainDefNew (Peter Krempa),<br/>
      qemuSetupChrSourceCgroup: rename dev to source (Ján Tomko),<br/>
      Simplify qemuSetupChrSourceCgroup and its callers (Ján Tomko),<br/>
      rename qemuSetupHostdevCGroup to qemuSetupHostdevCgroup (Ján Tomko),<br/>
      qemu: handle more machines with a single builtin IDE controller (Guido Günther),<br/>
      qemu: Always set locked memory limit for ppc64 domains (Andrea Bolognani),<br/>
      qemu: Use qemuDomainRequiresMlock() when attaching PCI hostdev (Andrea Bolognani),<br/>
      qemu: Use qemuDomainRequiresMlock() in qemuBuildCommandLine() (Andrea Bolognani),<br/>
      process: Log when limiting the amount of locked memory (Andrea Bolognani),<br/>
      vz: implementation of domainReboot callback (Mikhail Feoktistov),<br/>
      vz: allow only en-us keymap for VNC (Mikhail Feoktistov),<br/>
      qemu: Close logfd when closing monitor (Jiri Denemark),<br/>
      qemu: Do not infer flags from other qemuProcessStart arguments (Jiri Denemark),<br/>
      qemu: Introduce qemuProcessMakeDir (Jiri Denemark),<br/>
      qemu: Separate balloon code from qemuProcessStart (Jiri Denemark),<br/>
      qemu: Enter monitor within qemuProcessSetLinkStates (Jiri Denemark),<br/>
      qemu: Separate raw IO code from qemuProcessStart (Jiri Denemark),<br/>
      qemu: Separate graphics handling code from qemuProcessStart (Jiri Denemark),<br/>
      qemu: Separate hook handling code from qemuProcessStart (Jiri Denemark),<br/>
      qemu: Rename stdin_{fd,path} in qemuProcessStart (Jiri Denemark),<br/>
      qemu: Use -incoming defer for migrations (Jiri Denemark),<br/>
      qemu: Add APIs for migrate-incoming QMP command (Jiri Denemark),<br/>
      qemu: Always set async job when starting a domain (Jiri Denemark),<br/>
      qemu: Introduce qemuProcessIncomingDef (Jiri Denemark),<br/>
      qemu: Move incoming URI code to qemu_migration (Jiri Denemark),<br/>
      qemu: Don't generate migration URI in qemuBuildCommandLine (Jiri Denemark),<br/>
      qemu: Refactor the code to build -incoming command line (Jiri Denemark),<br/>
      qemu: Refactor waiting for completed migration on destination (Jiri Denemark),<br/>
      util: add virDiskNameParse to handle disk and partition idx (Joao Martins),<br/>
      libxl: implement virDomainMemorystats (Joao Martins),<br/>
      lxc: Bind mount container TTYs (Richard Weinberger),<br/>
      lxc: Don't make container's TTY a controlling TTY (Richard Weinberger),<br/>
      qemu: ppc64: Support memory hotplug without NUMA enabled (Peter Krempa),<br/>
      qemu: command: Prepare memory device def formatter for missing target node (Peter Krempa),<br/>
      conf: Prepare making memory device target node optional (Peter Krempa),<br/>
      qemu: command: Move dimm device checks from formatter to checker (Peter Krempa),<br/>
      qemu: domain: Add common function to perform memory hotplug checks (Peter Krempa),<br/>
      qemu: command: Always execute memory device formatter (Peter Krempa),<br/>
      qemu: command: Make qemuBuildMemoryBackendStr usable without NUMA (Peter Krempa),<br/>
      libxl: implement virDomainGetCPUStats (Joao Martins),<br/>
      syntax-check: Add prohibit_space_in_label rule (Andrea Bolognani),<br/>
      util: remove unnecessary needSize (Chen Hanxiao),<br/>
      storage: Introduce virStoragePoolObjFindPoolByUUID (John Ferlan),<br/>
      storage: Change cbdata scsi refresh thread field name (John Ferlan),<br/>
      storage: Make active boolean (John Ferlan),<br/>
      qemu: domain: Restructurate control flow in qemuDomainGetMlockLimitBytes (Peter Krempa),<br/>
      qemu: Fix job entry debug message (Jiri Denemark),<br/>
      tests: Add QEMU 2.4.0 capabilities (Jiri Denemark),<br/>
      tests: Remove qemuxmlnstest (Jiri Denemark),<br/>
      qemu: Fix style in qemuProcessStart (Jiri Denemark),<br/>
      security: Cleanup DAC driver (Jiri Denemark),<br/>
      domain-conf: cleanup controller insert function (Pavel Hrdina),<br/>
      virsh-domain: update attach-interface to support type=hostdev (Pavel Hrdina),<br/>
      vz: support cpu time in driver's domainGetInfo (Nikolay Shirokovskiy),<br/>
      qemu: assume various QEMU 0.10 features are always available (Daniel P. Berrange),<br/>
      qemu: assume -vga is always available (Daniel P. Berrange),<br/>
      qemu: assume -drive format is always available (Daniel P. Berrange),<br/>
      qemu: assume -drive cache always uses v2 option names (Daniel P. Berrange),<br/>
      qemu: assume support for all migration protocols except rdma (Daniel P. Berrange),<br/>
      qemu: assume vnet-hdr feature is always available (Daniel P. Berrange),<br/>
      qemu: really remove last traces of Xenner support (Daniel P. Berrange),<br/>
      qemu: assume -uuid is always available (Daniel P. Berrange),<br/>
      qemu: assume -name is always available (Daniel P. Berrange),<br/>
      qemu: assume -drive argument is always available (Daniel P. Berrange),<br/>
      qemu: handle USB bus in qemuAssignDeviceDiskAliasFixed() (Daniel P. Berrange),<br/>
      qemu: assume -no-reboot is always available (Daniel P. Berrange),<br/>
      qemu: assume 'info chardev' is always available (Daniel P. Berrange),<br/>
      qemu: assume -vnc arg always takes a ':' (Daniel P. Berrange),<br/>
      qemu: remove all support for kQEMU (Daniel P. Berrange),<br/>
      qemu: mandate QEMU version 0.12.0 or newer (Daniel P. Berrange),<br/>
      qemu: hotplug: Reject VFIO hotplug if setting RLIMIT_MEMLOCK fails (Peter Krempa),<br/>
      qemu: Extract logic to determine the mlock limit size for VFIO (Peter Krempa),<br/>
      conf: Make @def const in virDomainDefGetMemoryInitial (Peter Krempa),<br/>
      tests: redo test argv file line wrapping (Daniel P. Berrange),<br/>
      virnetdev: Use virNetDevSetupControl in virNetDevSendEthtoolIoctl (John Ferlan),<br/>
      virnetdev: Check for root in virNetDevGetFeatures (John Ferlan),<br/>
      qemu: add /usr/lib to AC_PATH_PROG for qemu-bridge-helper (Michel Normand),<br/>
      storage: Pull volume removal from pool in storageVolDeleteInternal (John Ferlan),<br/>
      storage: Cleanup failures in virStorageBackendCreateRaw (John Ferlan),<br/>
      storage: Cleanup failures virStorageBackendCreateExecCommand (John Ferlan),<br/>
      storage: Fix setting mode in virStorageBackendCreateExecCommand (John Ferlan),<br/>
      Remove new lines from log messages (Jiri Denemark),<br/>
      qemu: Introduce cleanup label in qemuProcessStart (Jiri Denemark),<br/>
      qemu: Rename ret variable in qemuProcessStart (Jiri Denemark),<br/>
      qemu: Rename cleanup label in qemuProcessStart (Jiri Denemark),<br/>
      Post-release version bump to 1.2.22 (Jiri Denemark)<br/>
      </li>
    </ul>

    <h3>1.2.21: Nov 04 2015</h3>
    <ul>
      <li>Documentation:<br/>
      docs: event impl. registration before hypervisor connection (Dominik Perpeet),<br/>
      libvirt-secret: Fix typo (Wei Jiangang),<br/>
      NEWS: Fix XSLT stylesheet (Andrea Bolognani),<br/>
      NEWS: Split releases by year (Andrea Bolognani),<br/>
      NEWS: Unify date format (Andrea Bolognani),<br/>
      NEWS: Unify section titles (Andrea Bolognani),<br/>
      NEWS: Add empty lines (Andrea Bolognani),<br/>
      NEWS: Fix indentation (Andrea Bolognani),<br/>
      NEWS: Fix newlines (Andrea Bolognani),<br/>
      NEWS: Fix whitespace (Andrea Bolognani),<br/>
      NEWS: Organize old entries (Andrea Bolognani),<br/>
      NEWS: Split old entries (2009) (Andrea Bolognani),<br/>
      NEWS: Split old entries (2008) (Andrea Bolognani),<br/>
      NEWS: Split old entries (2006-2007) (Andrea Bolognani),<br/>
      NEWS: Properly escape &gt; in HTML (Andrea Bolognani),<br/>
      NEWS: Split off merged sections (Andrea Bolognani),<br/>
      NEWS: Remove empty sections (Andrea Bolognani),<br/>
      NEWS: Include description for release 0.7.3 (Andrea Bolognani),<br/>
      docs: domain: Show canonical pvspinlock XML (Cole Robinson),<br/>
      docs: Add Cuckoo Sandbox into apps.html (Martin Kletzander)<br/>
      </li>

      <li>Portability:<br/>
      Fix virNetDevWaitDadFinish stub (Roman Bogorodskiy),<br/>
      util: implement virProcessGetStartTime on GNU/kFreeBSD (Pino Toscano),<br/>
      build: include xdr cflags for libvirt-admin (Eric Blake),<br/>
      virt-host-validate: disable mntent code on Win32 (Daniel P. Berrange),<br/>
      src: Remove $(builddir) usage (Andrea Bolognani)<br/>
      </li>

      <li>Bug Fixes:<br/>
      wireshark: Install to generic plugin directory (Michal Privoznik),<br/>
      network: wait for DAD to finish for bridge IPv6 addresses (Maxim Perevedentsev),<br/>
      qemu: Use live autoNodeset when numatune placement is auto (Luyao Huang),<br/>
      virsh-domain: use correct base for virStrToLong_ui (Pavel Hrdina),<br/>
      libvirt-domain: fix the error reporting when use the localhost as target uri (Luyao Huang),<br/>
      qemu: fix migration flags undefinesource cannot work (Luyao Huang),<br/>
      virsh: Display an error when passing count &lt;= 0 to setvcpus (Luyao Huang),<br/>
      virtlockd: Don't SIGSEGV on SIGUSR1 (Michal Privoznik),<br/>
      Close the source fd if the destination qemu exits during tunnelled migration (Shivaprasad G Bhat),<br/>
      qemu: Fix qemu startup check for QEMU_CAPS_OBJECT_IOTHREAD (John Ferlan),<br/>
      virsh: Use 'format' argument only when specified (Peter Krempa),<br/>
      storage: Track successful creation of LV for removal (John Ferlan),<br/>
      storage: Fix a resource leak in storageVolCreateXML (John Ferlan),<br/>
      storage: Fix incorrect format for &lt;disk&gt; &lt;auth&gt; XML (John Ferlan),<br/>
      migration: check dconnuri in p2p mode (Nikolay Shirokovskiy),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      libxl: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      tests: eventtest: Fix coverity warning (Cole Robinson),<br/>
      qemu: migration: Skip few checks while doing offline migration (Peter Krempa),<br/>
      qemu: Wait until destination QEMU consumes all migration data (Jiri Denemark),<br/>
      conf: Remove &lt;metadata&gt; elements with no namespace (Peter Krempa),<br/>
      storage: Adjust calculation of alloc/capacity for disk (John Ferlan),<br/>
      storage: Prior to creating a volume, refresh the pool (John Ferlan),<br/>
      virfile: Fix error path for forked virFileRemove (John Ferlan),<br/>
      rpc: libssh2: Fix regression in ssh host key verification (Peter Krempa),<br/>
      interface: fail on OOM from virGetInterface() (Laine Stump),<br/>
      libvirt.spec: fix accidental conditional inclusion of polkit docs (Daniel P. Berrange),<br/>
      qemu: Use memory-backing-file only when needed (Martin Kletzander)<br/>
      </li>

      <li>Improvements:<br/>
      util: set max wait for IPv6 DAD to 20 seconds (Laine Stump),<br/>
      util: set error if DAD is not finished (Luyao Huang),<br/>
      netlink: add support for multi-part netlink messages. (Maxim Perevedentsev),<br/>
      rbd: Remove snapshots if the DELETE_WITH_SNAPSHOTS flag has been provided (Wido den Hollander),<br/>
      bhyve: implement domainGetOSType (Roman Bogorodskiy),<br/>
      libvirt-domain: fix no error report when p2p migrate fail (Luyao Huang),<br/>
      conf: Add serial target type to ABI stability check (Luyao Huang),<br/>
      lock_daemon: Switch to wrapper locking functions (Michal Privoznik),<br/>
      qemu: hostdev: Introduce qemuHostdevUpdateActiveDomainDevices() (Andrea Bolognani),<br/>
      qemu: hostdev: Unify naming for qemuHostdevUpdateActive*Devices() (Andrea Bolognani),<br/>
      qemu: hostdev: Unify naming for qemuHostdevReAttach*Devices() (Andrea Bolognani),<br/>
      qemu: hostdev: Unify naming for qemuHostdevPrepare*Devices() (Andrea Bolognani),<br/>
      hostdev: Rename virHostdevUpdateDomainActiveDevices() (Andrea Bolognani),<br/>
      conf: Fix error message to use correct parameter (John Ferlan),<br/>
      util: Produce friendlier error message to user (Luyao Huang),<br/>
      util: Adjust error paths for virNumaSetPagePoolSize (Luyao Huang),<br/>
      util: split the virNumaGetHugePageInfoPath into separate function (Luyao Huang),<br/>
      Avoid using !STREQ and !STRNEQ (Ishmanpreet Kaur Khera),<br/>
      vz: implement some domain API calls (Maxim Nestratov),<br/>
      vz: implement API calls of nodeGetxxx family (Maxim Nestratov),<br/>
      vz: implement connectGetMaxVcpus API calls (Maxim Nestratov),<br/>
      security_dac: Introduce remember/recall APIs (Michal Privoznik),<br/>
      security_dac: Limit usage of virSecurityDACSetOwnershipInternal (Michal Privoznik),<br/>
      virSecurityDACRestoreSecurityFileLabel: Pass virSecurityDACDataPtr (Michal Privoznik),<br/>
      virSecurityDACSetOwnership: Pass virSecurityDACDataPtr (Michal Privoznik),<br/>
      virSecurityDACSetOwnershipInternal: Don't chown so often (Michal Privoznik),<br/>
      security_dac: Fix TODO marks (Michal Privoznik),<br/>
      conf: Optimize the iothreadid initialization (John Ferlan),<br/>
      qemu: Check for niothreads == 0 in qemuSetupCgroupForIOThreads (John Ferlan),<br/>
      qemu: Use 'niothreadids' instead of 'iothreads' (John Ferlan),<br/>
      Fix conficts with HACKING doc (Wei Jiangang),<br/>
      conf: Refactor the iothreadid initialization (John Ferlan),<br/>
      tests: make redirects happen in correct order (Wei Jiangang),<br/>
      storage: Rework error paths for virStorageBackendCreateExecCommand (John Ferlan),<br/>
      storage: On error rmdir created directory in virDirCreate[NoFork] (John Ferlan),<br/>
      storage: On error unlink created file in virFileOpen{As|Forked} (John Ferlan),<br/>
      storage: Remove duplicitous refreshVol in Sheepdog buildVol (John Ferlan),<br/>
      storage: Remove duplicitous refreshVol in RBD buildVol (John Ferlan),<br/>
      virt-host-validate: check for IOMMU support (Daniel P. Berrange),<br/>
      libvirt-domain: Drop virDomainMigrateCheckNotLocal attribute (Michal Privoznik),<br/>
      virt-host-validate: check for required cgroups (Daniel P. Berrange),<br/>
      virt-host-validate: distinguish exists vs accessible for devices (Daniel P. Berrange),<br/>
      virt-host-validate.c: check for kernel namespaces (Daniel P. Berrange),<br/>
      migration: refactor: introduce parameter checking function (Nikolay Shirokovskiy),<br/>
      migration: merge all proto branches into single function (Nikolay Shirokovskiy),<br/>
      migration: refactor: refactor parameter compatibility checks (Nikolay Shirokovskiy),<br/>
      migration: refactor: extract parameter adaption functions (Nikolay Shirokovskiy),<br/>
      migration: refactor: introduce params version of unmanaged (Nikolay Shirokovskiy),<br/>
      migration: refactor: merge direct and p2p into unmanaged (Nikolay Shirokovskiy),<br/>
      migration: refactor: rename uri parameter to miguri (Nikolay Shirokovskiy),<br/>
      migration: remove direct migration dependency on version1 of driver (Michal Privoznik),<br/>
      migration: move implementation check to branches in p2p (Nikolay Shirokovskiy),<br/>
      migration: refactor: reuse p2p url check (Nikolay Shirokovskiy),<br/>
      migration: refactor: get rid of use_params p2p_full (Nikolay Shirokovskiy),<br/>
      virJSONValueArraySize: return ssize_t (Michal Privoznik),<br/>
      src: Include $(builddir)/util in the header search path (Andrea Bolognani),<br/>
      storage: Perform some cleanup of calls (John Ferlan),<br/>
      AUTHORS: Add myself to the list of committers (Andrea Bolognani),<br/>
      virSecurityManagerNew: Turn array of booleans into flags (Michal Privoznik),<br/>
      qemu: Fix indentation issue (Andrea Bolognani),<br/>
      qemu: Remove explicit values from virQEMUCapsFlags (Andrea Bolognani),<br/>
      qemu: migration: Use migration flags in qemuMigrationIsAllowed (Peter Krempa),<br/>
      qemu: migration: Drop @def from qemuMigrationIsAllowed (Peter Krempa),<br/>
      qemu: migration: Split source and destination migration checks (Peter Krempa),<br/>
      spec: Delete .git after applying patches (Cole Robinson),<br/>
      tests: qemu: Add aarch64 virtio pci tests (Cole Robinson),<br/>
      qemu: Make updating stats in qemuMigrationCheckJobStatus optional (Jiri Denemark),<br/>
      qemu: Introduce flags in qemuMigrationCompleted (Jiri Denemark),<br/>
      qemu: Copy completed migration stats only on success (Jiri Denemark),<br/>
      qemu: Always update migration times on destination (Jiri Denemark),<br/>
      tests: Check GIC-related XMLs in qemuxml2xmltest (Martin Kletzander),<br/>
      Do not distribute generated virkeymaps.h (Martin Kletzander),<br/>
      apparmor: differentiate between error and unconfined profiles (Cédric Bosdonnat),<br/>
      testutils: Drop virtTestResult (Cole Robinson),<br/>
      tests: eventtest: Open code virtTestResult (Cole Robinson),<br/>
      tests: sheepdog: Drop use of virtTestResult (Cole Robinson),<br/>
      testutils: Add coloring to verbose PASS/FAILED output (Cole Robinson),<br/>
      storage: Introduce virStorageBackendDiskStartPool (John Ferlan),<br/>
      storage: Add additional errors/checks for disk label (John Ferlan),<br/>
      storage: Add param to check whether we can write a disk label (John Ferlan),<br/>
      storage: Refactor disk label checking (John Ferlan),<br/>
      virfile: Add extra check for direct delete in virFileRemove (John Ferlan),<br/>
      qemu: Add conditions for qemu-kvm use on ppc64 (Andrea Bolognani),<br/>
      rpc: libssh2: Add more debugging info (Peter Krempa),<br/>
      conf: Reuse virDomainDefCheckDuplicateDiskWWN to check disk serial too (Peter Krempa),<br/>
      qemu: Perform the disk WWN check only on fresh starts (Peter Krempa),<br/>
      interface: let netcf pre-filter for active vs. inactive (Laine Stump),<br/>
      interface: re-use name and mac address rather than re-retrieving (Laine Stump),<br/>
      interface: report correct interface count when not returning list (Laine Stump),<br/>
      qemu: Add -mem-path even with numa (Martin Kletzander),<br/>
      qemu: Extract -mem-path building into its own function (Martin Kletzander),<br/>
      qemu: Move memory size detection to the top of the function (Martin Kletzander),<br/>
      qemu: Move simplification variable to begining of the function (Martin Kletzander),<br/>
      qemu: Add test cases for gic-version option (Pavel Fedin),<br/>
      qemu: Add support for gic-version machine option (Pavel Fedin),<br/>
      qemu: Introduce QEMU_CAPS_MACH_VIRT_GIC_VERSION capability (Pavel Fedin),<br/>
      Post-release version bump to 1.2.21 (Martin Kletzander)<br/>
      </li>

      <li>Cleanups:<br/>
      tests: Remove unused nodeinfo test data (Andrea Bolognani),<br/>
      vz: cleanup (Maxim Nestratov),<br/>
      vz: remove storage driver as never used (Maxim Nestratov),<br/>
      vz: remove network driver as never used (Maxim Nestratov)<br/>
      </li>
    </ul>

    <h3>1.2.20: Oct 02 2015</h3>
    <ul>
      <li>Security:<br/>
      storage: Handle failure from refreshVol (John Ferlan),<br/>
      storage: Correct the 'mode' check (John Ferlan),<br/>
      virfile: Introduce virFileUnlink (John Ferlan)<br/>
      </li>

      <li>Documentation:<br/>
      docs: Add yet another libvirt based app (Michal Privoznik),<br/>
      conf: Document all VIR_DOMAIN_DEF_PARSE_* flags (Peter Krempa),<br/>
      Minor typo fixes in documentation (Christian Loehle),<br/>
      util: Add space before comment end marker (Andrea Bolognani),<br/>
      docs: Update devguide.html to point to the new Python dev guide (Daniel P. Berrange),<br/>
      docs: Remove last use of double semicolon in Makefile (Martin Kletzander)<br/>
      </li>

      <li>Portability:<br/>
      tools: Link libvirt.la and readline to libvirt_shell.a (Michal Privoznik),<br/>
      util: Add win32 version of virFileUnlink (Martin Kletzander)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: Fix dynamic_ownership qemu.conf setting (Cole Robinson),<br/>
      virsh: Preserve startupPolicy in change-media command (Michal Privoznik),<br/>
      Create a shallow copy for volume building only if supported (Ján Tomko),<br/>
      Update pool allocation with new values on volume creation (Ján Tomko),<br/>
      conf: Fix virtType check (John Ferlan),<br/>
      qemu: Make virtType of type virDomainVirtType (Shivangi Dhir),<br/>
      Use daemon log facility for journald (Guido Günther),<br/>
      domain: Fix migratable XML with graphics/@listen (Jiri Denemark),<br/>
      qemu: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu: Clean up ret in qemuDomainSaveMemory and qemuDomainSaveInternal (John Ferlan),<br/>
      qemu: Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      virsh: Resolve Coverity DEADCODE (John Ferlan),<br/>
      tests: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      tests: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virDomainRestore: Don't keep transient domains around (Michal Privoznik),<br/>
      virDomainCreateXML: Make domain definition transient (Michal Privoznik),<br/>
      virDomainCreateXML: Don't remove persistent domains on error (Michal Privoznik),<br/>
      virsh: Fix job status indicator for 0 length block jobs (Peter Krempa),<br/>
      qemu: Refresh memory size only on fresh starts (Peter Krempa),<br/>
      client rpc: Process pending data on error (Jiri Denemark),<br/>
      conf: escape string for disk driver name attribute (Luyao Huang),<br/>
      Makefile: fix build fail when make rpm (Luyao Huang),<br/>
      tests: Avoid use of virQEMUDriverCreateXMLConf(NULL) (Michal Privoznik),<br/>
      qemuTestDriverInit: init the driver lock too (Michal Privoznik),<br/>
      Revert "qemu: Fix integer/boolean logic in qemuSetUnprivSGIO" (John Ferlan),<br/>
      qemu: ppc64: Align memory sizes to 256MiB blocks (Peter Krempa),<br/>
      qemu: command: Align memory sizes only on fresh starts (Peter Krempa),<br/>
      test driver: don't unlock pool after freeing it (David Mansfield),<br/>
      qemuDomainChangeDiskLive: Allow startupPolicy change (Michal Privoznik),<br/>
      qemu: Fix some corner cases in persistent migration (Jiri Denemark),<br/>
      qemu: Don't report false errors in migration protocol v2 (Jiri Denemark),<br/>
      qemu: Kill domain when migration finish fails (Jiri Denemark),<br/>
      libxl: fix AttachDeviceConfig on hostdev type (Chunyan Liu),<br/>
      qemu: Fix using guest architecture as lookup key (Andrea Bolognani),<br/>
      libxl: fix compiler error introduced by commit ba25c214 (Jim Fehlig),<br/>
      Ignore virtio-mmio disks in qemuAssignDevicePCISlots() (Pavel Fedin),<br/>
      security_selinux: Take @privileged into account (Michal Privoznik),<br/>
      qemu: Allow others to browse /var/lib/libvirt/qemu (Martin Kletzander),<br/>
      qemu: hotplug: Properly clean up drive backend if frontend hotplug fails (Peter Krempa),<br/>
      xen: fix race in refresh of config cache (Daniel P. Berrange),<br/>
      libxl: don't end job for ephemeal domain on start failure (Ian Campbell),<br/>
      qemu: Report error if per-VM directory cannot be created (Martin Kletzander),<br/>
      Revert "docs: Drop unused rule for internals/%.html.tmp target" (Martin Kletzander),<br/>
      conf: fix crash when parsing a unordered NUMA &lt;cell/&gt; (Luyao Huang),<br/>
      admin: Resolve leaked reference to private data (Erik Skultety),<br/>
      util: Avoid Coverity FORWARD_NULL (John Ferlan),<br/>
      virfile: Avoid Coverity IDENTICAL_BRANCHES error (John Ferlan),<br/>
      lxc: Avoid Coverity SIZEOF_MISMATCH (John Ferlan),<br/>
      qemu: Check virGetLastError return value for migration finish failure (John Ferlan),<br/>
      qemu: Need to check for machine.os when using ADDRESS_TYPE_CCW (John Ferlan),<br/>
      libxl: don't overwrite error from virNetSocketNewConnectTCP() (Jim Fehlig),<br/>
      util: don't use netlink to save/set mac for macvtap+passthrough+802.1Qbh (Laine Stump),<br/>
      remoteClientCloseFunc: Don't mangle connection object refcount (Michal Privoznik),<br/>
      vshInit: Don't leak @histsize_env (Michal Privoznik)<br/>
      </li>

      <li>Improvements:<br/>
      conf: Add new VIR_DOMAIN_VIRT_NONE enum (Shivangi Dhir),<br/>
      vsh: create a noinstall libvirt_shell library (Erik Skultety),<br/>
      qemu: Move vm-&gt;persistent check into qemuDomainRemoveInactive (Michal Privoznik),<br/>
      Remove redundand assignment (Martin Kletzander),<br/>
      qemuDomainDeviceDefPostParse: Drop useless checks (Michal Privoznik),<br/>
      qemu: Align memory module sizes to 2MiB (Peter Krempa),<br/>
      virsh: Notify users about disconnects (Jiri Denemark),<br/>
      client rpc: Report proper error for keepalive disconnections (Jiri Denemark),<br/>
      Use VIR_DIV_UP macro where possible (Martin Kletzander),<br/>
      spec: Fix some warnings with latest rpmbuild (Cole Robinson),<br/>
      test: Add test to validate that memory sizes don't get updated on migration (Peter Krempa),<br/>
      conf: Don't always recalculate initial memory size from NUMA size totals (Peter Krempa),<br/>
      conf: Pre-calculate initial memory size instead of always calculating it (Peter Krempa),<br/>
      conf: Rename max_balloon to total_memory (Peter Krempa),<br/>
      conf: Split memory related post parse stuff into separate function (Peter Krempa),<br/>
      conf: Add XML parser flag that will allow us to do incompatible updates (Peter Krempa),<br/>
      conf: Drop VIR_DOMAIN_DEF_PARSE_CLOCK_ADJUST flag (Peter Krempa),<br/>
      qemu: Make memory alignment helper more universal (Peter Krempa),<br/>
      conf: Add helper to determine whether memory hotplug is enabled for a vm (Peter Krempa),<br/>
      libxl: vz: Use accessor instead of direct access for max_balloon (Peter Krempa),<br/>
      Removed unneeded check (Pavel Fedin),<br/>
      tests: use mockup cache (Pavel Fedin),<br/>
      Implement infrastracture for mocking up QEMU capabilities cache (Pavel Fedin),<br/>
      tests: split out common qemu driver initialization (Pavel Fedin),<br/>
      virfile: Use virProcessWait in virDirCreate (John Ferlan),<br/>
      virfile: Use virProcessWait in virFileUnlink (John Ferlan),<br/>
      virfile: Use virProcessWait in virFileOpenForked (John Ferlan),<br/>
      virfile: Rename virFileUnlink to virFileRemove (John Ferlan),<br/>
      vz: remove error logging from prlsdkUUIDParse (Maxim Nestratov),<br/>
      qemuDomainDiskChangeSupported: Fill in missing checks (Michal Privoznik),<br/>
      qemu: s/virDomainDiskDiffersSourceOnly/qemuDomainDiskChangeSupported/ (Michal Privoznik),<br/>
      qemuDomainChangeDiskLive: rework slightly (Michal Privoznik),<br/>
      qemu_domain: Introduce qemuDomainDiskSourceDiffers (Michal Privoznik),<br/>
      qemu: s/qemuDomainChangeDiskMediaLive/qemuDomainChangeDiskLive/ (Michal Privoznik),<br/>
      qemuDomainUpdateDeviceConfig: Allow startupPolicy update, yet again (Michal Privoznik),<br/>
      qemu: Queue events in migration Finish phase ASAP (Jiri Denemark),<br/>
      qemuDomainEventQueue: Check if event is non-NULL (Jiri Denemark),<br/>
      qemu: Don't fail migration on save status failure (Jiri Denemark),<br/>
      qemu: Simplify qemuMigrationFinish (Jiri Denemark),<br/>
      qemu: Split qemuMigrationFinish (Jiri Denemark),<br/>
      vmx: Expose datacenter path in domain XML (Matthias Bolte),<br/>
      virfile: Check for existence of dir in virFileDeleteTree (John Ferlan),<br/>
      virsh: Teach attach-interface to --print-xml (Michal Privoznik),<br/>
      libxl: open libxl log stream with libvirtd log_level (Jim Fehlig),<br/>
      virSecurityManager: Track if running as privileged (Michal Privoznik),<br/>
      security_selinux: Replace SELinuxSCSICallbackData with proper struct (Michal Privoznik),<br/>
      virSecuritySELinuxSetSecurityAllLabel: drop useless virFileIsSharedFSType (Michal Privoznik),<br/>
      qemu: Do not allow others into per-VM subdirectories (Martin Kletzander),<br/>
      qemu: command: Report stderr from qemu-bridge-helper (Cole Robinson),<br/>
      tests: Don't use testutils in mock libraries (Martin Kletzander),<br/>
      qemu: Try several network devices when looking for a default (Andrea Bolognani),<br/>
      qemu: Introduce QEMU_CAPS_DEVICE_VIRTIO_NET (Andrea Bolognani),<br/>
      qemu: Introduce QEMU_CAPS_DEVICE_E1000 (Andrea Bolognani),<br/>
      qemu: Introduce QEMU_CAPS_DEVICE_RTL8139 (Andrea Bolognani),<br/>
      qemu: migration: Relax enforcement of memory hotplug support (Peter Krempa),<br/>
      vmx: Add handling for CDROM devices with SCSI passthru (Matthias Bolte),<br/>
      vmx: The virVMXParseDisk deviceType can be NULL, add some missing checks (Matthias Bolte),<br/>
      cpu: Introduce IvyBridge CPU model (Jiri Denemark),<br/>
      virsh: Slightly rework cmdDomblklist (Michal Privoznik),<br/>
      .gitignore: Ignore the correct rename example binary (Michal Privoznik),<br/>
      examples: Add missing build data for 'rename' (Martin Kletzander),<br/>
      conf: Remove need for a couple of sa_asserts (John Ferlan),<br/>
      Change name of the domain upon successful rename (Martin Kletzander),<br/>
      Add example that renames domain there and back (Martin Kletzander),<br/>
      examples: Add example polkit ACL rules (Jiri Denemark),<br/>
      qemu: Introduce qemuDomainMachineIsS390CCW (John Ferlan),<br/>
      vsh: Make vshInitDebug static (Erik Skultety),<br/>
      virsh: Do not make interactive mode default (Erik Skultety),<br/>
      vsh: Introduce vshInitReload (Erik Skultety),<br/>
      vsh: adjust vshInit signature and remove redundant error label (Erik Skultety),<br/>
      domain-conf: escape string for socket attribute (Pavel Hrdina),<br/>
      util: make virNetDev(Replace|Restore)MacAddress public functions (Laine Stump),<br/>
      virfile: Add error for root squash change mode failure (John Ferlan),<br/>
      qemu: add udp interface support (Jonathan Toppins),<br/>
      Post release version bump to 1.2.20 (Ján Tomko)<br/>
      </li>

      <li>Cleanups:<br/>
      maint: Remove control characters from LGPL license file (Andrea Bolognani),<br/>
      vmx: Some whitespace cleanup (Matthias Bolte)<br/>
      </li>
    </ul>

    <h3>1.2.19: Sep 02 2015</h3>
    <ul>
      <li>Features:<br/>
      Big improvements on ppc64 support (Andrea Bolognani),<br/>
      New virDomainRename API (Tomas Meszaros),<br/>
      Support for QEMU new pci emulations (Laine Stump)<br/>
      </li>

      <li>Documentation:<br/>
      Rename page about vz driver (Sergey Bronnikov),<br/>
      docs: Rename 'parallels' to 'vz' (Sergey Bronnikov),<br/>
      virDomainRename: Extend API documentation (Tomas Meszaros),<br/>
      virt-aa-helper: document --probing and --dry-run (Guido Günther),<br/>
      docs: Drop unused rule for internals/%.html.tmp target (Guido Günther),<br/>
      api: Adjust comment for virDomainAddIOThread (John Ferlan),<br/>
      fix typo in comments (Cao jin),<br/>
      virDomainCoreDumpWithFormat: Mention enum for @dumpformat (Michal Privoznik)<br/>
      </li>

      <li>Portability:<br/>
      lxc: ensure setns() syscall is defined (Daniel P. Berrange),<br/>
      selinux: fix compile errors (Guido Günther),<br/>
      util: fix build without cgroup (Roman Bogorodskiy),<br/>
      build: fix mingw build (Eric Blake),<br/>
      protocol: Don't use rename as a variable name (Martin Kletzander),<br/>
      Remove static keyword from vshReadline when readline does not exist (Moshe Levi),<br/>
      Detect location of qemu-bridge-helper (Guido Günther),<br/>
      Check if qemu-bridge-helper exists and is executable (Guido Günther),<br/>
      nodeinfo: Fix build failure when KVM headers are not available (Andrea Bolognani)<br/>
      </li>

      <li>Bug Fixes:<br/>
      apparmor: Adjust path to domain monitor socket (Guido Günther),<br/>
      util: fallback to ioctl(SIOCBRDELBR) if netlink RTM_DELLINK fails (Laine Stump),<br/>
      util: fallback to ioctl(SIOCBRADDBR) if netlink RTM_NEWLINK fails (Laine Stump),<br/>
      Revert "LXC: show used memory as 0 when domain is not active" (Jim Fehlig),<br/>
      libxl: acquire a job when receiving a migrating domain (Jim Fehlig),<br/>
      libxl: don't attempt to resume domain when suspend fails (Jim Fehlig),<br/>
      libxl: fix ref counting of libxlMigrationDstArgs (Jim Fehlig),<br/>
      libvirt_lxc: Claim success for --help (Michal Privoznik),<br/>
      util: Allow virProcessSetNamespaces() to have sparse FD list (Michal Privoznik),<br/>
      virt-aa-helper: Improve valid_path (Michal Privoznik),<br/>
      lxc: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      qemu: Emit correct audit message for memory hot unplug (Luyao Huang),<br/>
      qemu: Emit correct audit message for memory hot plug (Luyao Huang),<br/>
      hostdev: skip ACS check when using VFIO for device assignment (Laine Stump),<br/>
      qemu: Label correct per-VM path when starting (Martin Kletzander),<br/>
      qemu: Update blkio.weight value after successful set (Luyao Huang),<br/>
      Eliminate incorrect and unnecessary check for changed IP address (Vasiliy Tolstov),<br/>
      storage: only run safezero if allocation is &gt; 0 (Guido Günther),<br/>
      virt-aa-helper: allow access to /usr/share/ovmf/ (intrigeri),<br/>
      qemu: Fix access to auto-generated socket paths (Martin Kletzander),<br/>
      cpu: Move check for NULL CPU model inside the driver (Andrea Bolognani),<br/>
      qemu: Sync BlkioDevice values when setting them in cgroups (Martin Kletzander),<br/>
      lxc: Sync BlkioDevice values when setting them in cgroups (Martin Kletzander),<br/>
      qemuDomainRename: Don't leave a domain locked uppon fail (Michal Privoznik),<br/>
      qemu: Add check for invalid iothread_id in qemuDomainChgIOThread (John Ferlan),<br/>
      virsh: Reset global error after successfull domain lookup (Luyao Huang),<br/>
      libvirt-domain: forbid use virDomainRename in readonly connection (Luyao Huang),<br/>
      virsh: fix always return false in domrename (Luyao Huang),<br/>
      qemu: Resolve Coverity UNINIT (John Ferlan),<br/>
      qemu: Fix segfault when parsing private domain data (Martin Kletzander),<br/>
      conf: Check for hostdev conflicts when assign default disk address (John Ferlan),<br/>
      conf: Add SCSI hostdev check for disk drive address already in use (John Ferlan),<br/>
      Revert "qemu: Allow to plug virtio-net-pci into PCIe slot" (Laine Stump),<br/>
      domain: Fix crash if trying to live update disk &lt;serial&gt; (Cole Robinson),<br/>
      util: don't overwrite stack when getting ethtool gfeatures (Laine Stump),<br/>
      cpu: Fix segfault in the ppc64 driver (Andrea Bolognani),<br/>
      conf: Don't try formating non-existing addresses (Martin Kletzander),<br/>
      qemu: fail on attempts to use &lt;filterref&gt; for non-tap network connections (Laine Stump),<br/>
      network: validate network NAT range (Laine Stump),<br/>
      qemu: Enable ioeventfd usage for virtio-scsi controllers (Martin Kletzander),<br/>
      virNetDevBandwidthParseRate: Reject negative values (Michal Privoznik),<br/>
      network: verify proper address family in updates to &lt;host&gt; and &lt;range&gt; (Laine Stump),<br/>
      virDomainDefParseXML: Check for malicious cpu ids in &lt;numa/&gt; (Michal Privoznik),<br/>
      qemu: Fix reporting of physical capacity for block devices (Peter Krempa),<br/>
      qemu: Build correct command line for PCI NICs on ARM (Pavel Fedin),<br/>
      qemu: Forbid image pre-creation for non-shared storage migration (Peter Krempa),<br/>
      conf: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      virsh: fix domfsinfo output in quiet mode (Luyao Huang),<br/>
      Avoid starting a PowerPC VM with floppy disk (Kothapally Madhu Pavan),<br/>
      Caps: Disable floppy disk for PowerPC VM (Kothapally Madhu Pavan),<br/>
      qemu: fix some api cannot work when disable cpuset in conf (Luyao Huang)<br/>
      </li>

      <li>Improvements:<br/>
      src: Check for symbols ordering in ADMIN_SYM_FILES (Michal Privoznik),<br/>
      src: Cleanup libvirt_admin.syms (Michal Privoznik),<br/>
      src: Check libvirt_admin.syms for exported symbols (Michal Privoznik),<br/>
      lxc_container: Turn lxcAttachNS into calling virProcessSetNamespaces (Michal Privoznik),<br/>
      utils: Remove the logging of errors from virNetDevSendEthtoolIoctl (Moshe Levi),<br/>
      Start daemon only after filesystems are mounted (Martin Kletzander),<br/>
      virt-aa-helper: add NVRAM store file for read/write (Peter Kieser),<br/>
      Fix link to page for Virtuozzo driver (Sergey Bronnikov),<br/>
      lxc: Inherit namespace feature (ik.nitk),<br/>
      qemu: add a check for nodeset in qemuDomainSetNumaParamsLive (Luyao Huang),<br/>
      virt-aa-helper: Simplify restriction logic (Guido Günther),<br/>
      tests: Use qemuProcessPrepareMonitorChr in qemuxmlnstest (Martin Kletzander),<br/>
      security_dac: Add SetDirLabel support (Martin Kletzander),<br/>
      security_selinux: Add SetDirLabel support (Martin Kletzander),<br/>
      security_stack: Add SetDirLabel support (Martin Kletzander),<br/>
      security: Add virSecurityDomainSetDirLabel (Martin Kletzander),<br/>
      security_dac: Label non-listening sockets (Martin Kletzander),<br/>
      security_selinux: Use proper structure to access socket data (Martin Kletzander),<br/>
      locking: Remove redundant 'srv' element from virLockDaemon (Erik Skultety),<br/>
      tests: Add some compatibility-related cases to the CPU tests (Andrea Bolognani),<br/>
      cpu: Better support for ppc64 compatibility modes (Andrea Bolognani),<br/>
      cpu: Don't update host-model guest CPUs on ppc64 (Andrea Bolognani),<br/>
      Add generated libvirt_admin.syms into .gitignore (Martin Kletzander),<br/>
      conf: Check for attach disk usage of iothread=0 (John Ferlan),<br/>
      libvirt-admin: Generate symbols file (Guido Günther),<br/>
      daemon: Use $(NULL) for libvird_admin's flags (Guido Günther),<br/>
      virconf: correct code formatting (Cao jin),<br/>
      virConfWalk: fix the inconsistent name (Cao jin),<br/>
      qemu: Report better error message when renaming to existing domain name (Martin Kletzander),<br/>
      util: Add getters for cgroup block device I/O throttling (Martin Kletzander),<br/>
      util: Add virCgroupGetBlockDevString (Martin Kletzander),<br/>
      util: Add virStringGetFirstWithPrefix (Martin Kletzander),<br/>
      api: Remove check on iothread_id arg in virDomainPinIOThread (John Ferlan),<br/>
      qemuDomainAddCgroupForThread: Don't overwrite the error (Luyao Huang),<br/>
      virconf: fix the inconsistent name (Cao jin),<br/>
      qemuDomainRename: Explicitly check if domain is renaming to itself (Michal Privoznik),<br/>
      virHashAddEntry: Report error on duplicate key (Michal Privoznik),<br/>
      virHashAddOrUpdateEntry: Turn @new_name into void * (Michal Privoznik),<br/>
      tools: Introduce new client generic module vsh (Erik Skultety),<br/>
      qemu: Implement virDomainRename (Tomas Meszaros),<br/>
      Introduce new VIR_DOMAIN_EVENT_DEFINED_RENAMED event (Tomas Meszaros),<br/>
      domain_conf: Introducde virDomainObjListRenameAddNew() &amp; virDomainObjListRenameRemove() (Tomas Meszaros),<br/>
      virsh: Implement "domrename" command (Tomas Meszaros),<br/>
      Introduce virDomainRename API (Tomas Meszaros),<br/>
      conf: Remove 'vmdef' from virDomainHostdevDefParseXML (John Ferlan),<br/>
      qemu: Use numad information when getting pin information (Martin Kletzander),<br/>
      qemu: Keep numad hint after daemon restart (Martin Kletzander),<br/>
      conf: Pass private data to Parse function of XML options (Martin Kletzander),<br/>
      conf: Create locals for virDomainDiskDefAssignAddress (John Ferlan),<br/>
      Drive hot-unplug: reliable parsing of HMP results (Frank Schreuder),<br/>
      cmdAttachInterface: Fully implement @floor support (Michal Privoznik),<br/>
      networkBandwidthGenericChecks: Drop useless check (Michal Privoznik),<br/>
      networkBandwidthUpdate: Don't blindly dereference pointers (Michal Privoznik),<br/>
      virsh: Refactor parseRateStr to avoid false-positive uninitialized variable (Peter Krempa),<br/>
      qemu: fix qemuDomainSupportsPCI() for ARM machines of "virt" machinetype (Laine Stump),<br/>
      virNetSocketCheckProtocols: handle EAI_NONAME as IPv6 unavailable (Guido Günther),<br/>
      qemu: Implement VIR_DOMAIN_BANDWIDTH_IN_FLOOR (Michal Privoznik),<br/>
      virsh: Implement VIR_DOMAIN_BANDWIDTH_IN_FLOOR (Michal Privoznik),<br/>
      Introduce VIR_DOMAIN_BANDWIDTH_IN_FLOOR (Michal Privoznik),<br/>
      virsh: Rework parseRateStr (Michal Privoznik),<br/>
      qemuDomainSetInterfaceParameters: Use new functions to update bandwidth (Michal Privoznik),<br/>
      bridge_driver: Introduce networkBandwidthUpdate (Michal Privoznik),<br/>
      bridge_driver: Introduce networkBandwidthChangeAllowed (Michal Privoznik),<br/>
      virNetDevBandwidthUpdateRate: turn class_id into integer (Michal Privoznik),<br/>
      virNetDevParseMcast: Avoid magic constant (Michal Privoznik),<br/>
      tests: Add a bunch of cpu test case for ppc64 (Andrea Bolognani),<br/>
      tests: Re-enable ppc64 cpu tests (Andrea Bolognani),<br/>
      cpu: Forbid model fallback in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Implement backwards compatibility in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Add POWER8NVL information to CPU map XML (Andrea Bolognani),<br/>
      cpu: Parse and use PVR masks in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Simplify ppc64 part of CPU map XML (Andrea Bolognani),<br/>
      cpu: Support multiple PVRs in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Align ppc64 CPU data with x86 (Andrea Bolognani),<br/>
      tests: Temporarily disable ppc64 cpu tests (Andrea Bolognani),<br/>
      cpu: Use ppc64Compute() to implement ppc64DriverCompare() (Andrea Bolognani),<br/>
      cpu: CPU model names have to match on ppc64 (Andrea Bolognani),<br/>
      cpu: Never skip CPU model name check in ppc64 driver (Andrea Bolognani),<br/>
      tests: Improve result handling in cpuTestGuestData() (Andrea Bolognani),<br/>
      cpu: Reorder functions in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Simplify ppc64ModelFromCPU() (Andrea Bolognani),<br/>
      cpu: Simplify NULL handling in ppc64 driver (Andrea Bolognani),<br/>
      cpu: Mark driver functions in ppc64 driver (Andrea Bolognani),<br/>
      admin: Drop 'internal.h' include from libvirt-admin.h (Erik Skultety),<br/>
      conf: Add ioeventfd option for controllers (Martin Kletzander),<br/>
      qemuMonitorOpenInternal: remove redundant code (Cao jin),<br/>
      rpc: Remove keepalive_required option (Martin Kletzander),<br/>
      qemu: support new pci controller model "pcie-switch-downstream-port" (Laine Stump),<br/>
      conf: new pcie-controller model "pcie-switch-downstream-port" (Laine Stump),<br/>
      qemu: add capabilities bit for device xio3130-downstream (Laine Stump),<br/>
      qemu: support new pci controller model "pcie-switch-upstream-port" (Laine Stump),<br/>
      conf: new pci controller model "pcie-switch-upstream-port" (Laine Stump),<br/>
      qemu: add capabilities bit for device x3130-upstream (Laine Stump),<br/>
      qemu: support new pci controller model "pcie-root-port" (Laine Stump),<br/>
      conf: new pci controller model "pcie-root-port" (Laine Stump),<br/>
      qemu: add capabilities bit for device ioh3420 (Laine Stump),<br/>
      qemu: implement &lt;target chassisNr='n'/&gt; subelement/attribute of &lt;controller&gt; (Laine Stump),<br/>
      conf: add new &lt;target&gt; subelement with chassisNr attribute to &lt;controller&gt; (Laine Stump),<br/>
      qemu: implement &lt;model&gt; subelement to &lt;controller&gt; (Laine Stump),<br/>
      conf: add new &lt;model&gt; subelement with name attribute to &lt;controller&gt; (Laine Stump),<br/>
      conf: more useful error message when pci function is out of range (Laine Stump),<br/>
      numa_conf: Introduce virDomainNumaGetMaxCPUID (Michal Privoznik),<br/>
      Allow vfio hotplug of a device to the domain which owns the iommu (Shivaprasad G Bhat),<br/>
      qemuDomainDefPostParse: Adjust indent (Michal Privoznik),<br/>
      bootstrap: Don't require python-config (Michal Privoznik),<br/>
      qemu: Allow to plug virtio-net-pci into PCIe slot (Pavel Fedin),<br/>
      qemu: Add PCI-Express root to ARM virt machine (Pavel Fedin),<br/>
      qemu: Introduce QEMU_CAPS_OBJECT_GPEX (Pavel Fedin),<br/>
      cpu: Indentation changes in the ppc64 driver (Andrea Bolognani),<br/>
      cpu: Rename {powerpc,ppc} =&gt; ppc64 (internal symbols) (Andrea Bolognani),<br/>
      cpu: Rename {powerpc,ppc} =&gt; ppc64 (exported symbols) (Andrea Bolognani),<br/>
      cpu: Rename {powerpc,ppc} =&gt; ppc64 (filesystem) (Andrea Bolognani),<br/>
      tests: extend workaround for gnutls private key loading failure (Daniel P. Berrange),<br/>
      conf: Allow error reporting in virDomainDiskSourceIsBlockType (John Ferlan),<br/>
      docs: Add Fibre Channel NPIV supported option for volume lun config (John Ferlan),<br/>
      conf: Change when virDomainDiskDefAssignAddress is called (John Ferlan),<br/>
      conf: Remove unused param from virDomainHostdevDefParseXML (John Ferlan),<br/>
      conf: Change when virDomainHostdevAssignAddress is called (John Ferlan),<br/>
      conf: Try controller add when searching hostdev bus for unit (John Ferlan),<br/>
      conf: Add check for host address type while checking in use (John Ferlan),<br/>
      conf: Add xmlopt to virDomainDeviceDefPostParseInternal (John Ferlan),<br/>
      conf: Move hostdev and disk address validations (John Ferlan),<br/>
      conf: Add 'bus' and 'target' to SCSI address conflict checks (John Ferlan),<br/>
      conf: Remove extraneous check in virDomainHostdevAssignAddress (John Ferlan),<br/>
      qemu: Remove double unlock for domains (Martin Kletzander),<br/>
      tests: Add subcores3 nodeinfo test (Andrea Bolognani),<br/>
      tests: Add subcores2 nodeinfo test (Andrea Bolognani),<br/>
      tests: Add subcores1 nodeinfo test (Andrea Bolognani),<br/>
      tests: Prepare for subcore tests (Shivaprasad G Bhat),<br/>
      nodeinfo: Fix output on PPC64 KVM hosts (Shivaprasad G Bhat),<br/>
      rpc: Fix slow volume download (virsh vol-download) (Ossi Herrala),<br/>
      There is no virDomainFindBy{ID, Name, UUID} anymore (Cao jin),<br/>
      Post-release version bump to 1.2.19 (Martin Kletzander),<br/>
      Fix a trailing space in spec file (Daniel Veillard)<br/>
      </li>

      <li>Cleanups:<br/>
      Revert "lxc: ensure setns() syscall is defined" (Michal Privoznik),<br/>
      test: Replace tabs with spaces in virnetdaemondata json files (Erik Skultety),<br/>
      tests: Remove unused file (Andrea Bolognani),<br/>
      cpu: Remove ISA information from CPU map XML (Andrea Bolognani)<br/>
      </li>
    </ul>

    <h3>1.2.18: Aug 03 2015</h3>
    <ul>
      <li>Features:<br/>
      libxl: support dom0 (Jim Fehlig),<br/>
      </li>

      <li>Documentation:<br/>
      fix typo in qemu_monitor (Cao jin),<br/>
      docs: bhyve: document clock configuration (Roman Bogorodskiy),<br/>
      viraccessperm.h: Fix some typos (Michal Privoznik),<br/>
      docs: Document how libvirt handles companion controllers (Martin Kletzander),<br/>
      daemonRunStateInit: Fix a typo on a comment (Michal Privoznik)<br/>
      </li>

      <li>Portability:<br/>
      netdev: fix build on FreeBSD (Roman Bogorodskiy),<br/>
      spec: Fix polkit dep on F23 (Cole Robinson),<br/>
      nodeinfo: fix build on FreeBSD (Roman Bogorodskiy),<br/>
      Escape left brace as new perl suggests (Martin Kletzander)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: Do not reset labels when migration fails (Jiri Denemark),<br/>
      qemu: Reject migration with memory-hotplug if destination doesn't support it (Peter Krempa),<br/>
      Load nbd module before running qemu-nbd (Cédric Bosdonnat),<br/>
      lxc: Don't accidentaly reset autostart flag in virLXCProcessCleanup (Peter Krempa),<br/>
      remote: fix typo in remoteDomainOpenGraphicsFD (Daniel P. Berrange),<br/>
      qemu: Check for iotune_max support properly (Martin Kletzander),<br/>
      Renamed deconfigured-cpus to allow make dist (Daniel Veillard),<br/>
      storage: allow zero capacity with non-backing file to be created (Chris J Arges),<br/>
      nodeinfo: Check for SYSFS_INFINIBAND_DIR before open (John Ferlan),<br/>
      qemu: fix the error cover issue in SetMemoryParameters (Luyao Huang),<br/>
      nodeinfo: Fix nodeGetCPUBitmap()'s fallback code path (Andrea Bolognani),<br/>
      tests: Restore links in deconfigured-cpus nodeinfo test (Andrea Bolognani),<br/>
      cgroup: Drop resource partition from virSystemdMakeScopeName (Peter Krempa),<br/>
      qemu: Reject updating unsupported disk information (Martin Kletzander),<br/>
      storage: Fix pool building when directory already exists (Christophe Fergeau),<br/>
      rpc: ensure daemon is spawn even if dead socket exists (Daniel P. Berrange),<br/>
      rbd: Return error from rbd_create for message processing (John Ferlan),<br/>
      qemuMigrationRun: Don't leak @fd (Michal Privoznik),<br/>
      Fix qemu-nbd cleanup crashes (Cédric Bosdonnat),<br/>
      network: Add another collision check into networkCheckRouteCollision (Martin Kletzander),<br/>
      nodeinfo: fix to parse present cpus rather than possible cpus (Kothapally Madhu Pavan),<br/>
      libxl: set dom0 state to running (Jim Fehlig),<br/>
      rpc: Rework timerActive logic in daemon (Martin Kletzander),<br/>
      qemu: Check duplicate WWNs also for hotplugged disks (Peter Krempa),<br/>
      Fix cloning of raw, sparse volumes (Prerna Saxena),<br/>
      qemu: don't use initialized ret in qemuRemoveSharedDevice (Guido Günther),<br/>
      qemu: report error for non-existing disk in blockjobinfo (Luyao Huang),<br/>
      conf: Don't allow duplicated target names regardless of bus (John Ferlan),<br/>
      storage: Revert volume obj list updating after volume creation (4749d82a) (Erik Skultety),<br/>
      qemu: Fix integer/boolean logic in qemuSetUnprivSGIO (John Ferlan),<br/>
      qemu: report error when shmem has an invalid address (Luyao Huang),<br/>
      qemu: Auto assign pci addresses for shared memory devices (Luyao Huang),<br/>
      vz: use PRL_USE_VNET_NAME_FOR_BRIDGE_NAME (Maxim Nestratov),<br/>
      Explicitly format the isa-fdc controller for newer q35 machines (Ján Tomko),<br/>
      virt-aa-helper: add unix channels for nserials as well (Serge Hallyn),<br/>
      storage: Fix regression in storagePoolUpdateAllState (Erik Skultety),<br/>
      better patch for the XSS search issue (Daniel Veillard),<br/>
      Avoid XSS vulnerability on the search engine (Daniel Veillard),<br/>
      vz: fix SDK event dispatching (Nikolay Shirokovskiy),<br/>
      util: Avoid Coverity FORWARD_NULL (John Ferlan),<br/>
      virsh: report error if vcpu number exceed the guest maxvcpu number (Luyao Huang),<br/>
      virt-aa-helper: Fix permissions for vhost-user socket files (Michal Dubiel)<br/>
      </li>

      <li>Improvements:<br/>
      qemu: Properly check for incoming migration job (Jiri Denemark),<br/>
      Fix syntax-check: missing "%s" (Cédric Bosdonnat),<br/>
      qemu: Adjust VM id allocation (Erik Skultety),<br/>
      admin: Tiny cleanups (Martin Kletzander),<br/>
      tests: Finish rename of the long nodeinfo test case (Martin Kletzander),<br/>
      conf: add virDomainControllerDefNew() (Laine Stump),<br/>
      qemu: reorganize loop in qemuDomainAssignPCIAddresses (Laine Stump),<br/>
      conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses (Laine Stump),<br/>
      tests: add vol-qcow2-zerocapacity test to storagevolxml2argvtest (Chris J Arges),<br/>
      Revert "qemu: Use heads parameter for QXL driver" (Martin Kletzander),<br/>
      test: introduce a function in test driver to check get vcpupin info (Luyao Huang),<br/>
      conf: reorganize virNetworkDHCPDefParseXML (Laine Stump),<br/>
      nodeinfo: Check for errors when reading core_id (Andrea Bolognani),<br/>
      bhyve: add UTC clock support (Roman Bogorodskiy),<br/>
      configure: clarify rationale for checking pkcheck (Daniel P. Berrange),<br/>
      nodeinfo: Calculate present and online CPUs only once (Andrea Bolognani),<br/>
      nodeinfo: Use a bitmap to keep track of node CPUs (Andrea Bolognani),<br/>
      nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node (Andrea Bolognani),<br/>
      nodeinfo: Phase out cpu_set_t usage (Andrea Bolognani),<br/>
      nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() (Andrea Bolognani),<br/>
      nodeinfo: Remove out parameter from nodeGetCPUBitmap() (Andrea Bolognani),<br/>
      nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() (Andrea Bolognani),<br/>
      nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() (Andrea Bolognani),<br/>
      nodeinfo: Introduce linuxGetCPUOnlinePath() (Andrea Bolognani),<br/>
      nodeinfo: Introduce linuxGetCPUGlobalPath() (Andrea Bolognani),<br/>
      nodeinfo: Add nodeGetPresentCPUBitmap() to libvirt_private.syms (Andrea Bolognani),<br/>
      virsh: Refactor block job waiting in cmdBlockCopy (Peter Krempa),<br/>
      virsh: Refactor block job waiting in cmdBlockCommit (Peter Krempa),<br/>
      virsh: Refactor block job waiting in cmdBlockPull (Peter Krempa),<br/>
      qemu: Update state of block job to READY only if it actually is ready (Peter Krempa),<br/>
      virsh: Refactor argument handling in cmdBlockPull (Peter Krempa),<br/>
      virsh: Refactor argument handling in cmdBlockCopy (Peter Krempa),<br/>
      virsh: Refactor argument checking in cmdBlockCommit (Peter Krempa),<br/>
      virsh: Kill blockJobImpl by moving the final impl into cmdBlockCommit (Peter Krempa),<br/>
      virsh: Split out block pull implementation from blockJobImpl (Peter Krempa),<br/>
      virsh: block job: separate abort from blockJobImpl (Peter Krempa),<br/>
      virsh: blockjob: Split out vshBlockJobSetSpeed from blockJobImpl (Peter Krempa),<br/>
      virsh: cmdBlockJob: Switch to declarative flag interlocking (Peter Krempa),<br/>
      virsh: blockjob: Extract block job info code into a separate function (Peter Krempa),<br/>
      nodedev: add RDMA and tx-udp_tnl-segmentation NIC capabilities (Moshe Levi),<br/>
      qemu: Use heads parameter for QXL driver (Frediano Ziglio),<br/>
      rbd: Use RBD format 2 by default when creating images. (Wido den Hollander),<br/>
      virsh: Don't output node frequency if unknown (Martin Kletzander),<br/>
      qemu: Test for virtio-9p-ccw support (Boris Fiuczynski),<br/>
      qemu: Make virtio-9p-ccw the default for s390-ccw-virtio machines (Boris Fiuczynski),<br/>
      qemu: Support for virtio-9p-ccw (Boris Fiuczynski),<br/>
      virsh: Teach cmdFreepages to work with lxc driver (Michal Privoznik),<br/>
      cmdVcpuPin: Remove dead code (Michal Privoznik),<br/>
      lxc: wait for nbd device to be up to get its PIDs (Cédric Bosdonnat),<br/>
      nodeinfo: Formatting changes (Andrea Bolognani),<br/>
      nodeinfo: Make sysfs_prefix usage more consistent (Andrea Bolognani),<br/>
      qemu: process: Improve update of maximum balloon state at startup (Peter Krempa),<br/>
      qemuDomainSetNumaParamsLive: Check for NUMA mode more wisely (Michal Privoznik),<br/>
      conf: Add getter for network routes (Martin Kletzander),<br/>
      tests: Add nodeinfo test for non-present CPUs (Andrea Bolognani),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetMemoryStats (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeCapsInitNUMA (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetInfo (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetCPUMap (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetCPUBitmap (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetPresentCPUBitmap (John Ferlan),<br/>
      nodeinfo: Add sysfs_prefix to nodeGetCPUCount (John Ferlan),<br/>
      nodeinfo: Introduce local linuxGetCPUPresentPath (John Ferlan),<br/>
      virt-driver-vz: Require parallels-7.0.22 at least (Michal Privoznik),<br/>
      configure: Move Virtuozzo checks to a specific module (Michal Privoznik),<br/>
      qemuProcessHandleMigrationStatus: Update migration status more frequently (Michal Privoznik),<br/>
      vz: fix cleanup of nets of bridged type (Dmitry Guryanov),<br/>
      qemu: Use error from Finish instead of "unexpectedly failed" (Jiri Denemark),<br/>
      qemu: Don't report false error from MigrateFinish (Jiri Denemark),<br/>
      qemu: Remember incoming migration errors (Jiri Denemark),<br/>
      Introduce virErrorCopyNew (Jiri Denemark),<br/>
      Introduce virHashAtomic (Jiri Denemark),<br/>
      cpu: Add support for MPX and AVX512 Intel features (Jiri Denemark),<br/>
      virt-aa-helper: add DomainGuest to mockup caps (Cédric Bosdonnat),<br/>
      virt-aa-helper: rename ctl-&gt;hvm to ctl-&gt;os (Cédric Bosdonnat),<br/>
      Get more libvirt errors from virt-aa-helper (Cédric Bosdonnat),<br/>
      virt-aa-helper: fix rules for paths with trailing slash (Cédric Bosdonnat),<br/>
      rpc: Add virNetDaemonHasClients (Martin Kletzander),<br/>
      Rewrite allocation tracking when cloning volumes (Ján Tomko),<br/>
      qemu: Drop LFs at the end of error from QEMU log (Jiri Denemark),<br/>
      qemu: Log all arguments of qemuProcessStart (Jiri Denemark),<br/>
      qemu: Wait for migration events on domain condition (Jiri Denemark),<br/>
      qemu: Update migration state according to MIGRATION event (Jiri Denemark),<br/>
      qemuDomainGetJobStatsInternal: Support migration events (Jiri Denemark),<br/>
      qemu: Enable migration events on QMP monitor (Jiri Denemark),<br/>
      qemu_monitor: Wire up MIGRATION event (Jiri Denemark),<br/>
      qemu_hotplug: try harder to eject media (Pavel Hrdina),<br/>
      monitor: detect that eject fails because the tray is locked (Pavel Hrdina),<br/>
      virDomainObjSignal: drop this function (Pavel Hrdina),<br/>
      virCondWaitUntil: add another return value (Pavel Hrdina),<br/>
      qemu: Refactor qemuSetUnprivSGIO return values (John Ferlan),<br/>
      qemu: Inline qemuGetHostdevPath (John Ferlan),<br/>
      qemu: Refactor qemuCheckSharedDisk to create qemuCheckUnprivSGIO (John Ferlan),<br/>
      libxl: rework setting the state of virDomainObj (Jim Fehlig),<br/>
      libxl: support dom0 (Jim Fehlig),<br/>
      qemu: Introduce qemuGetHostdevPath (John Ferlan),<br/>
      qemu: Introduce qemuIsSharedHostdev (John Ferlan),<br/>
      docs: Clarify unprivileged sgio feature (John Ferlan),<br/>
      conf: use virDomainChrSourceDef to save server path (Luyao Huang),<br/>
      qemu: Refactor creation of shared memory device commandline (Luyao Huang),<br/>
      qemu: Assign IDs for shared memory devices (Luyao Huang),<br/>
      Separate isa-fdc options generation (Ján Tomko),<br/>
      Add support for portable-rpcgen from portablexdr library (Pavel Fedin),<br/>
      Remove explicit enum from protocol structures (Pavel Fedin),<br/>
      util: bitmap: Don't alloc overly large binary bitmaps (Peter Krempa),<br/>
      vz: Use virBitmapToDataBuf instead of virBitmapToData in vzDomainGetVcpus (Peter Krempa),<br/>
      vz: Remove dead code from vzDomainGetVcpus (Peter Krempa),<br/>
      qemu: move the guest status check before agent config and status check (Luyao Huang),<br/>
      qemu: remove deadcode in qemuDomain{HelperGetVcpus|GetIOThreadsLive} (Luyao Huang),<br/>
      vz: assign static IPs and default gateways for network adapter (Mikhail Feoktistov),<br/>
      vz: fix building capabilities (Dmitry Guryanov),<br/>
      qemu_driver: live/config checks cleanup (Pavel Hrdina),<br/>
      Post-release version bump to 1.2.18 (Michal Privoznik),<br/>
      cpu_map.xml: Expand Opteron_G4 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Opteron_G2 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Opteron_G1 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Broadwell-noTSX CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Haswell-noTSX CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand SandyBridge CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Westmere CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Nehalem CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Penryn CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand Conroe CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand kvm64 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand cpu64-rhel5 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand kvm32 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand qemu32 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand n270 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand coreduo CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand pentiumpro CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand pentium2 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand pentium CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Expand 486 CPU model (Jiri Denemark),<br/>
      cpu_map.xml: Sort features in x86 CPU models (Jiri Denemark)<br/>
      </li>
    </ul>

    <h3>1.2.17: Jul 02 2015</h3>
    <ul>
      <li>Features:<br/>
      numerous improvements and refactoring of the parallels driver (Maxim Nestratov),<br/>
      hardening of vcpu code (Peter Krempa),<br/>
      hardening of migration code (Jiri Denemark)<br/>
      </li>

      <li>Documentation:<br/>
      Fix typo incomaptible -&gt; incompatible (Andrea Bolognani),<br/>
      docs: Clarification for when allowed to use 'lun' for "volume" (John Ferlan),<br/>
      docs: document when pcie-root/dmi-to-pci-bridge support was added (Laine Stump),<br/>
      docs: Fix trivial copy-paste error (Martin Kletzander),<br/>
      docs: Properly mark acl.html dependencies (Michal Privoznik),<br/>
      docs: Correct typos in scsi hostdev and address elements (Eric Farman),<br/>
      docs: Fix XML schema handling of LUN address in hostdev tag (Eric Farman),<br/>
      virNetSocketRemoveIOCallback: Be explicit about unref (Michal Privoznik),<br/>
      man: clarify usage of virsh blockcopy with --xml (Ján Tomko),<br/>
      docs: Clarify that attribute name is not used for vhostuser (Maxime Leroy),<br/>
      maint: document use of zanata for translations (Eric Blake),<br/>
      qemu: Capitalize "storage" in qemuDomainAttachUSBMassStorageDevice() (Andrea Bolognani),<br/>
      docs: php: remove reference to Red Hat (Ján Tomko),<br/>
      monitor: Move documentation for qemuMonitorGetBalloonInfo (Peter Krempa)<br/>
      </li>

      <li>Portability:<br/>
      admin: Fix mingw build by reordering includes (Martin Kletzander),<br/>
      util: process: fix build on FreeBSD (Roman Bogorodskiy),<br/>
      util: Properly return error from virGetUserID and virGetGroupID stubs (Peter Krempa),<br/>
      build: silence ar warnings on rawhide (Eric Blake),<br/>
      util: process: @pid in virProcessSetAffinity's BSD impl is not unused (Peter Krempa),<br/>
      libxl: load on FreeBSD (Roman Bogorodskiy)<br/>
      </li>

      <li>Bug Fixes:<br/>
      phyp: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      lxc: Don't pass a local variable address randomly (Michal Privoznik),<br/>
      qemu: Resolve Coverity DEADCODE (John Ferlan),<br/>
      qemu: Audit memory size with memory hotplug operations (Peter Krempa),<br/>
      qemu: Avoid using ".(null)" in UNIX socket path (Jiri Denemark),<br/>
      qemu: agent: Don't automatically disable CPU0 via guest agent (Peter Krempa),<br/>
      qemu: End job even if exiting monitor after OpenGraphics(FD) fails (Luyao Huang),<br/>
      qemu: properly free addresses on non-serial chardev unplug (Ján Tomko),<br/>
      qemu: fix address allocation on chardev attach (Luyao Huang),<br/>
      libxl: Set def-&gt;vcpus after successfully modifying live vcpu count (Jim Fehlig),<br/>
      libxl: don't remove persistent domain on start failure (Jim Fehlig),<br/>
      libxl: don't overwrite domain state from statedir config (Jim Fehlig),<br/>
      qemu: Add missing on_crash lifecycle type (John Ferlan),<br/>
      Use the correct symbol for 'onCrash' (John Ferlan),<br/>
      mpath: Don't allow more than one mpath pool at a time (John Ferlan),<br/>
      mpath: Update path in CheckPool function (John Ferlan),<br/>
      conf: Validate disk lun using correct types (John Ferlan),<br/>
      Storage: Introduce shadow vol for refresh while the main vol builds. (Prerna Saxena),<br/>
      conf: storage: Fix duplicate check for gluster pools (Peter Krempa),<br/>
      qemu: event: Properly handle spice events (Peter Krempa),<br/>
      Revert "Introduce QEMU_CAPS_ARM_VIRT_PCI" (Peter Krempa),<br/>
      qemu: Close the agent connection only on agent channel events (Peter Krempa),<br/>
      storage: Set correct vol-&gt;type at VolCreate (John Ferlan),<br/>
      qemu: Fix assignment of the default spicevmc channel name (Jiri Denemark),<br/>
      qemu: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      test: qemu: Make sure that wr_highest_offset_valid gets set properly (Peter Krempa),<br/>
      vz: Fix build after recent commit (Peter Krempa),<br/>
      qemuBuildMemoryBackendStr: Honour passed @pagesize (Michal Privoznik),<br/>
      qemuBuildMemoryBackendStr: Fix hugepages lookup process (Michal Privoznik),<br/>
      conf: Format scheduler priority when it is zero (Luyao Huang),<br/>
      qemu: Avoid removing persistent config if migration fails (Luyao Huang),<br/>
      scsi: Force error for SCSI pools on virStorageBackendSCSIFindLUs failure (John Ferlan),<br/>
      conf: Enforce scheduler name when parsing XML (Peter Krempa),<br/>
      qemu: caps: Fix syntax-check failure in version based capabilities (Peter Krempa),<br/>
      libxl: avoid freeing an uninitialised bitmap (Ian Campbell),<br/>
      virNetServerServiceClose: Don't leak sockets (Michal Privoznik),<br/>
      virNetSocket: Fix @watch corner case (Michal Privoznik),<br/>
      daemonSetupNetworking: Don't leak services (Michal Privoznik),<br/>
      scsi: Adjust return status from getBlockDevice (John Ferlan),<br/>
      qemuMigrationDriveMirror: Force raw format for NBD (Michal Privoznik),<br/>
      qemu: Jump to correct label in qemuDomainPinIOThread (Peter Krempa),<br/>
      conf: Fix virDomainObjGetDefs when getting persistent config on a live vm (Peter Krempa),<br/>
      rpc: Actually increase reference count on @srv in virNetDaemonAddServer (Peter Krempa),<br/>
      parallels: Fix false error messages in libvirt log (Mikhail Feoktistov),<br/>
      parallels: Fix initialization of buflen variable in each loop iteration (Mikhail Feoktistov),<br/>
      nodedev: update netdev feature bits before each dumpxml (Laine Stump),<br/>
      tests: Follow virnetserver to virnetdaemon transition (Michal Privoznik),<br/>
      daemon: Distribute admin_server.h (Michal Privoznik),<br/>
      daemon/Makefile: Add forgotten dependency (Michal Privoznik),<br/>
      util: virfile: Fix 'unknown cause' error if NFS mount point creation fails (Erik Skultety),<br/>
      util: Fix Coverity RESOURCE_LEAK (John Ferlan),<br/>
      storage: Generate correct parameters for CIFS (John Ferlan),<br/>
      rpc: Fix possible crash when MDNSAddEntry fails (Martin Kletzander),<br/>
      qemu: emulatorpin: Don't reset pinning when pinning to all cpus (Peter Krempa),<br/>
      storage: Disallow wiping an extended disk partition (John Ferlan),<br/>
      storage: Need to set secrettype for direct iscsi disk volume (John Ferlan),<br/>
      scsi: Need to translate disk source pool in config attach path (John Ferlan),<br/>
      network: escape quotes for dsmasq conf contents (Shivaprasad G Bhat),<br/>
      virsh: change-media: Fix behavior with --update without a source (Peter Krempa),<br/>
      rpc: Fix reference counting around virNetSocketAddIOCallback (Daniel P. Berrange),<br/>
      rpc: Don't use unrelated value as privateData of client (Daniel P. Berrange),<br/>
      mdns: Set error when failing due to missing avahi (Martin Kletzander),<br/>
      qemu: Update balloon info only if job is allowed (Peter Krempa),<br/>
      conf: Fix mistakes in pointer usage in virDomainObjGetDefs (Peter Krempa),<br/>
      check if console/channel PTY is null before attempting to open (Shivaprasad G Bhat),<br/>
      virnetdev: fix moving of 802.11 phys (Lubomir Rintel),<br/>
      util: process: Refactor and fix virProcessSetAffinity (Peter Krempa),<br/>
      util: Clear output broadcast address before filling it in (Martin Kletzander),<br/>
      virsh: Fix Ctrl-C behavior when watching a job (Jiri Denemark),<br/>
      libxl: Unbreak vcpu pinning (Peter Krempa),<br/>
      qemu: Fix possible crash in qemuProcessSetVcpuAffinities (Peter Krempa),<br/>
      qemu: Do not release device address on successful RNG attach (Luyao Huang),<br/>
      qemu: Need to return status of RNG device removal (Luyao Huang),<br/>
      test: fix IP address range failure test (Laine Stump),<br/>
      storage: RBD: do not return error when deleting non-existent volume (Erik Skultety),<br/>
      storage: Don't update volume objs list before we successfully create one (Erik Skultety),<br/>
      nwfilter: Fix sscanf off-by-one error in virNWFilterSnoopLeaseFileLoad (Erik Skultety),<br/>
      virsh: Fix printing of XML for pool-create-as (John Ferlan)<br/>
      </li>

      <li>Improvements:<br/>
      conf: qemu: Taint VMs using custom device tree blob (Peter Krempa),<br/>
      conf: audit: Audit physical memory size rather than balloon request (Peter Krempa),<br/>
      libxl: honor domainGetXMLDesc() --inactive flag (Jim Fehlig),<br/>
      qemu: event: Clean up VNC monitor handling (Peter Krempa),<br/>
      qemuxml2argv: Remove Haswell CPU from unrelated tests (Jiri Denemark),<br/>
      Revert "Change livbirt version to 1.3.0 for the next release" (Martin Kletzander),<br/>
      Temporarily disable admin API (Martin Kletzander),<br/>
      spec: Remove admin package specification (Martin Kletzander),<br/>
      qemu: ignore assumptions about hotplug requirement when address is from config (Laine Stump),<br/>
      qemu: always permit PCI devices to be manually assigned to a PCIe bus (Laine Stump),<br/>
      qemu: refactor qemuBuildControllerDevStr to eliminate future duplicate code (Laine Stump),<br/>
      qemu: monitor: Remove qemuMonitorGetBlockExtent (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetBlockInfo (Peter Krempa),<br/>
      qemu: monitor: Open-code retrieval of wr_highest_offset (Peter Krempa),<br/>
      internal: Introduce virCheckNonEmptyStringArgGoto and reuse it (Peter Krempa),<br/>
      vz: add memory statistics (Nikolay Shirokovskiy),<br/>
      vz: add vcpu statistics (Nikolay Shirokovskiy),<br/>
      vz: cleanup, make in par net device lookup functions (Nikolay Shirokovskiy),<br/>
      vz: add net dev statistiscs (Nikolay Shirokovskiy),<br/>
      docs: Don't keep temporary files around (Michal Privoznik),<br/>
      test: Refactor testNodeGetCPUMap (Peter Krempa),<br/>
      test: Refactor vcpu pinning and vcpu info retrieval (Peter Krempa),<br/>
      test: Refactor testDomainSetVcpusFlags (Peter Krempa),<br/>
      test: Refactor test driver domain object retrieval (Peter Krempa),<br/>
      test: Drop locked access to testDriver-&gt;domains (Peter Krempa),<br/>
      test: Finalize removal of locking from driver-&gt;eventState (Peter Krempa),<br/>
      test: Refactor test driver event sending (Peter Krempa),<br/>
      test: Use atomic access to @nextDomID in struct virTestDriver (Peter Krempa),<br/>
      test: Annotate few fields of testDriver structure (Peter Krempa),<br/>
      test: Extract common parts of test driver data allocation (Peter Krempa),<br/>
      test: Extract code to free testDriver into testDriverFree (Peter Krempa),<br/>
      test: turn 'defaultConn' into a pointer (Peter Krempa),<br/>
      test: Rename testConn to testDriver (Peter Krempa),<br/>
      vz: Adapt to driver rename (Michal Privoznik),<br/>
      json: enhance parser test (Eric Blake),<br/>
      json: even stricter trailing garbage detection (Eric Blake),<br/>
      json: reject trailing garbage (Eric Blake),<br/>
      json: reject javascript comments (Eric Blake),<br/>
      json: cope with older yajl semantics (Eric Blake),<br/>
      vz: implementation of attach/detach network devices (Mikhail Feoktistov),<br/>
      Test for the new watchdog model diag288 (Boris Fiuczynski),<br/>
      Support for the new watchdog model diag288 (Boris Fiuczynski),<br/>
      Test for the new watchdog action inject-nmi (Boris Fiuczynski),<br/>
      Support for a new watchdog action inject-nmi (Boris Fiuczynski),<br/>
      vircapstest: Properly report error for failed tests (Michal Privoznik),<br/>
      conf: Adjust invalid secrettype setting during parse (John Ferlan),<br/>
      conf: improve the way we format blkiotune and cputune (Luyao Huang),<br/>
      Improve some errors for openconsole/channel (Luyao Huang),<br/>
      storage: Force setting of disk format type (John Ferlan),<br/>
      docs: Adjust Disk storage rng (John Ferlan),<br/>
      Convert SCSI logical unit from unsigned int to unsigned long long (Eric Farman),<br/>
      Print SCSI address attributes bus, target, unit as unsigned integer (Eric Farman),<br/>
      Read SCSI address attributes bus, target, unit as positive integer (Eric Farman),<br/>
      qemu: simplify json parsing (Eric Blake),<br/>
      json: make it easier to type-check when getting from object (Eric Blake),<br/>
      json: fully parse input string (Eric Blake),<br/>
      test: Switch to reference counting with testDomObjFromDomain (Peter Krempa),<br/>
      test: Reuse virDomainObjGetOneDef in testDomainGetVcpusFlags (Peter Krempa),<br/>
      virsh: blockcopy: Report error if the copy job fails (Peter Krempa),<br/>
      Introduce QEMU_CAPS_ARM_VIRT_PCI (Pavel Fedin),<br/>
      update sheepdog client] update sheepdog client path (Vasiliy Tolstov),<br/>
      qemu: cancel drive mirrors when p2p connection breaks (Jiri Denemark),<br/>
      qemu: Refactor qemuMigrationWaitForCompletion (Jiri Denemark),<br/>
      qemu: Don't pass redundant job name around (Jiri Denemark),<br/>
      qemu: Refactor qemuMigrationUpdateJobStatus (Jiri Denemark),<br/>
      qemu: Refactor qemuDomainGetJob{Info,Stats} (Jiri Denemark),<br/>
      qemu: Do not poll for spice migration status (Jiri Denemark),<br/>
      qemu_monitor: Wire up SPICE_MIGRATE_COMPLETED event (Jiri Denemark),<br/>
      qemu: Use domain condition for asyncAbort (Jiri Denemark),<br/>
      qemu: Cancel disk mirrors after libvirtd restart (Jiri Denemark),<br/>
      qemu: Refactor qemuMonitorBlockJobInfo (Jiri Denemark),<br/>
      qemu: Make qemuMigrationCancelDriveMirror usable without async job (Jiri Denemark),<br/>
      Pass domain object to private data formatter/parser (Jiri Denemark),<br/>
      qemu: Don't mess with disk-&gt;mirrorState (Jiri Denemark),<br/>
      qemu: Abort migration early if disk mirror failed (Jiri Denemark),<br/>
      qemu: Cancel storage migration in parallel (Jiri Denemark),<br/>
      qemu: Use domain condition for synchronous block jobs (Jiri Denemark),<br/>
      qemu: Properly report failed migration (Jiri Denemark),<br/>
      qemu: Introduce qemuBlockJobUpdate (Jiri Denemark),<br/>
      conf: Introduce per-domain condition variable (Jiri Denemark),<br/>
      lib: setvcpus: Remove bogus flag check (Peter Krempa),<br/>
      virsh: selective block device migration (Pavel Boldin),<br/>
      qemu: migration: selective block device migration (Pavel Boldin),<br/>
      util: add virTypedParamsAddStringList (Pavel Boldin),<br/>
      util: virTypedParams{Filter,GetStringList} (Pavel Boldin),<br/>
      util: multi-value parameters in virTypedParamsAdd* (Pavel Boldin),<br/>
      util: multi-value virTypedParameter (Pavel Boldin),<br/>
      virDomainDiskGetSource: Mark passed disk as 'const' (Michal Privoznik),<br/>
      conf: Move vcpu info parsing code into a separate function (Peter Krempa),<br/>
      qemu: 'privileged' flag is not really configuration (Peter Krempa),<br/>
      qemu: Reuse virDomainObjGetDefs in qemuDomainGetMemoryParameters (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetMemoryParameters (Peter Krempa),<br/>
      qemu: Refactor qemuDomainSetNumaParameters (Peter Krempa),<br/>
      qemu: Simplify qemuDomainSetInterfaceParameters by using virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Simplify qemuDomainGetVcpusFlags by using virDomainObjGetOneDef (Peter Krempa),<br/>
      qemu: Simplify qemuDomainGetEmulatorPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br/>
      qemu: Simplify qemuDomainGetVcpuPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br/>
      qemu: Simplify qemuDomainGetNumaParameters by using virDomainObjGetOneDef (Peter Krempa),<br/>
      qemu: Simplify qemuDomainGetInterfaceParameters by using virDomainObjGetOneDef (Peter Krempa),<br/>
      conf: Introduce helper to help getting correct def for getter functions (Peter Krempa),<br/>
      qemu: implement address for isa-serial (James Cowgill),<br/>
      qemu: Add a check for slot and base dimm address conflicts (Luyao Huang),<br/>
      daemon: Add the admin service to the admin server only if it was allocated (Peter Krempa),<br/>
      remove redundant condition (Ján Tomko),<br/>
      virSysinfo: Introduce SMBIOS type 2 support (Michal Privoznik),<br/>
      qemu: Report all supported machine types in capabilities (Jiri Denemark),<br/>
      tests: Sort EXTRA_DIST in the Makefile (Michal Privoznik),<br/>
      daemon: Don't just include admin RPC (Michal Privoznik),<br/>
      parallels: substitute parallels with vz spec file and Makefile (Maxim Nestratov),<br/>
      parallels: rename all parallels files and driver directory to vz (Maxim Nestratov),<br/>
      parallels: substitute parallels with vz in strings (Maxim Nestratov),<br/>
      parallels: change parallels prefixes to vz (Maxim Nestratov),<br/>
      virfile: virDirCreate: Insert blank lines to assure slightly better readability (Erik Skultety),<br/>
      util: virDirCreate: Child now exits with positive errno-code (Erik Skultety),<br/>
      lxc: set nosuid+nodev+noexec flags on /proc/sys mount (Eric W. Biederman),<br/>
      lxc: Rename daemon to dmn (Martin Kletzander),<br/>
      Revert "rpc: Add virNetServerGetNClients" (Martin Kletzander),<br/>
      Revert "admin: Add virAdmHello function" (Martin Kletzander),<br/>
      Change livbirt version to 1.3.0 for the next release (Martin Kletzander),<br/>
      Example virt-admin (Martin Kletzander),<br/>
      admin: Add virAdmHello function (Martin Kletzander),<br/>
      rpc: Add virNetServerGetNClients (Martin Kletzander),<br/>
      Add support for admin API in libvirt daemon (Martin Kletzander),<br/>
      Add configuration options for permissions on daemon's admin socket (Martin Kletzander),<br/>
      Add XML files with admin API specification (Martin Kletzander),<br/>
      Add libvirt-admin library (Martin Kletzander),<br/>
      Add admin error domain (Martin Kletzander),<br/>
      Build client headers for admin protocol (Martin Kletzander),<br/>
      Add admin protocol (Martin Kletzander),<br/>
      Teach gendispatch how to handle admin dispatching files (Martin Kletzander),<br/>
      tests: Adapt virnetservertest to daemon refactor (Martin Kletzander),<br/>
      Move daemon-related parts of virNetServer to virNetDaemon (Martin Kletzander),<br/>
      lxc: properly clean up qemu-nbd (Cédric Bosdonnat),<br/>
      Add virProcessGetPids to get all tasks of a process (Cédric Bosdonnat),<br/>
      storage: Adjust command arglist for gluster (John Ferlan),<br/>
      storage: Fix the schema and add tests for cifs pool (John Ferlan),<br/>
      configure: Remove check for pkcheck_supports_uid (Guido Günther),<br/>
      tests: Use libvirt properly with initialization and error dispatching (Martin Kletzander),<br/>
      Generate JSON with mDNS entries only when built --with-avahi (Martin Kletzander),<br/>
      build: Remove unnecessarily repeated rules for syms -&gt; def (Martin Kletzander),<br/>
      qemu: monitor: Add memory balloon support for virtio-ccw (Boris Fiuczynski),<br/>
      getOldStyleBlockDevice: Adjust formatting (Michal Privoznik),<br/>
      getNewStyleBlockDevice: Adjust formatting (Michal Privoznik),<br/>
      qemu caps: spell queue (Ján Tomko),<br/>
      qemu: Do not support 'serial' scsi-block 'lun' devices (John Ferlan),<br/>
      virCapabilitiesDomainDataLookup: Produce saner error message (Michal Privoznik),<br/>
      libxl: Add timestamp to the libxl driver log. (Anthony PERARD),<br/>
      qemu: update netdevs of the same mac addrs correctly (zhang bo),<br/>
      virsysinfo: s/system/sysdef/ (Michal Privoznik),<br/>
      cmdNetworkList: Introduce --name, --uuid, --table (Michal Privoznik),<br/>
      cmdNetworkList: switch to FILTER (Michal Privoznik),<br/>
      qemuBuildDriveStr: s/virBufferEscapeString/virBufferAsprintf/ (Michal Privoznik),<br/>
      virQEMUCapsArch: openrisc vs or32 (Michal Privoznik),<br/>
      virSysinfoDef: Exempt SYSTEM variables (Michal Privoznik),<br/>
      virSysinfoDef: Exempt BIOS variables (Michal Privoznik),<br/>
      tests: Distribute virnetserverdata (Michal Privoznik),<br/>
      schema: use arch list from basictypes for os arch attribute (James Cowgill),<br/>
      util: add virJSONValueCopy (Martin Kletzander),<br/>
      qemu: add multiqueue vhost-user support (Maxime Leroy),<br/>
      qemu: Add capability for vhost-user multiqueue (Martin Kletzander),<br/>
      conf: Ignore multiqueue with one queue. (Martin Kletzander),<br/>
      util: Make virProcessGetAffinity more readable and fix coverity warning (Peter Krempa),<br/>
      apibuild: Generate macro/@string attribute (Jiri Denemark),<br/>
      rpc: add testing of RPC JSON (de)serialization (Daniel P. Berrange),<br/>
      rpc: add API for checking IPv4/6 availability (Daniel P. Berrange),<br/>
      rpc: allow selection of TCP address family (Daniel P. Berrange),<br/>
      virNumaSetPagePoolSize: Produce friendlier error message (Michal Privoznik),<br/>
      logical: Fix typo in error message (John Ferlan),<br/>
      conf: fix domaincommon.rng to accept network name with quotes (Shivaprasad G Bhat),<br/>
      parallels: treat block devices as disks for containers (Maxim Nestratov),<br/>
      parallels: report SATA bus type for container block devices disks (Maxim Nestratov),<br/>
      parallels: process '/' mount point correctly for containers (Maxim Nestratov),<br/>
      parallels: add isCt parameter to prlsdkGetDiskInfo and prlsdkAddDisk (Maxim Nestratov),<br/>
      parallels: add block device statistics to driver (Nikolay Shirokovskiy),<br/>
      qemu: caps: Advertise arm 32-on-64 KVM option (Cole Robinson),<br/>
      qemu: caps: qemu-system-aarch64 supports armv7l (Cole Robinson),<br/>
      qemu: command: Support arm 32-on-64 KVM with -cpu aarch64=off (Cole Robinson),<br/>
      parallels: return only success from PCS event handler (Nikolay Shirokovskiy),<br/>
      parallels: simplify event types discrimination (Nikolay Shirokovskiy),<br/>
      utiltest: Use int8_t instead of char. (Michal Privoznik),<br/>
      Turn qemuMonitorFindBalloonObjectPath into a void function (Ján Tomko),<br/>
      Do not access the domain definition in qemuMonitorFindBalloonObjectPath (Ján Tomko),<br/>
      Only call SetMemoryStatsPeriod for virtio memballoon (Ján Tomko),<br/>
      Check for balloon model in qemuDomainSetMemoryStatsPeriod (Ján Tomko),<br/>
      Only call qemuMonitorGetMemoryStats for virtio memballoon (Ján Tomko),<br/>
      Invert the condition in qemuDomainMemoryStats (Ján Tomko),<br/>
      Add endjob label to qemuDomainMemoryStats (Ján Tomko),<br/>
      Remove path argument from qemuMonitorJSONFindLinkPath (Ján Tomko),<br/>
      Introduce qemuMonitorJSONFindLinkPath (Ján Tomko),<br/>
      Move qemuMonitorFindObjectPath to qemu_monitor_json (Ján Tomko),<br/>
      rpc: Make virNetServerAddClient function dynamic (Daniel P. Berrange),<br/>
      storage: Add check for valid FS types in checkPool callback (John Ferlan),<br/>
      storage: FS backend adjust error message on error path (John Ferlan),<br/>
      storage: Refactor storage pool type checks (John Ferlan),<br/>
      qemu: Check for qemu capability when calling virDomainGetBlockIoTune() (Martin Kletzander),<br/>
      qemu: Refactor qemuDomainSetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetEmulatorPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainPinEmulator by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetVcpuPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainPinVcpuFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainSetBlkioParameters by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainChgIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainPinIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetIOThreadInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainSetMemoryStatsPeriod by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      qemu: Refactor qemuDomainSetMemoryFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
      conf: Add new helpers to resolve virDomainModificationImpact to domain defs (Peter Krempa),<br/>
      libxl: Don't remove vcpu pin definition in libxlDomainCleanup (Peter Krempa),<br/>
      Revert "cputune: Support cputune for xend driver" (Peter Krempa),<br/>
      qemu: libxl: vcpupin: Don't reset pinning when pinning to all pcpus (Peter Krempa),<br/>
      lib: virDomainPinIOThread: Remove spurious overflow check (Peter Krempa),<br/>
      conf: Store cpu count as unsigned int (Peter Krempa),<br/>
      qemu: Refactor qemuDomainGetInfo (Peter Krempa),<br/>
      qemu: Add helper to update domain balloon size and refactor usage places (Peter Krempa),<br/>
      qemu: process: Update current balloon state to maximum on vm startup (Peter Krempa),<br/>
      Always add 'console' matching the 'serial' device (Ján Tomko),<br/>
      qemu: process: Refactor setup of memory ballooning (Peter Krempa),<br/>
      qemu: monitor: Make qemuMonitorSetBalloon operate on unsinged long long (Peter Krempa),<br/>
      util: Add macro to overflow check integer assignments (Peter Krempa),<br/>
      libxl: Refactor libxlDomainGetVcpuPinInfo (Peter Krempa),<br/>
      libxl: Reuse virBitmapToData in libxlDomainSetVcpuAffinities (Peter Krempa),<br/>
      qemu: Refactor qemuDomainHelperGetVcpus by reusing virBitmapToDataBuf (Peter Krempa),<br/>
      qemu: Reuse virBitmapToDataBuf in qemuDomainGetEmulatorPinInfo (Peter Krempa),<br/>
      qemu: Use virBitmapToDataBuf in qemuDomainGetVcpuPinInfo (Peter Krempa),<br/>
      util: bitmap: Add virBitmapToDataBuf that does not allocate the buffer (Peter Krempa),<br/>
      conf: Move pinning information definition closer to the usage place (Peter Krempa),<br/>
      conf: Refactor emulatorpin handling (Peter Krempa),<br/>
      parallels: set virtType depending on driver name (Maxim Nestratov),<br/>
      parallels: recommend to connect to vz:///system when connection fails (Maxim Nestratov),<br/>
      parallels: increment the number of connection drivers (Maxim Nestratov),<br/>
      parallels: add a new vz connection driver and hypervisor structures (Maxim Nestratov),<br/>
      parallels: accept vz as a driver uri and name (Maxim Nestratov),<br/>
      parallels: add new guest capabilities assigned to vz driver (Maxim Nestratov),<br/>
      parallels: use newly introduced VIR_DOMAIN_VIRT_VZ (Maxim Nestratov),<br/>
      parallels: introduce vz driver constant and string (Maxim Nestratov),<br/>
      audit: Audit number of iothreads at domain startup (Luyao Huang),<br/>
      util: report all address range errors in virSocketAddrGetRange() (Laine Stump),<br/>
      network: cleanup range loop in networkDnsmasqConfContents (Laine Stump),<br/>
      network: validate DHCP ranges are completely within defined network (Laine Stump),<br/>
      Simplify virNodeCountThreadSiblings (Ján Tomko),<br/>
      Report errors in virNodeCountThreadSiblings (Ján Tomko),<br/>
      virsh: Move error messages inside vshCommandOpt*() functions (Andrea Bolognani),<br/>
      virsh: Pass vshControl to all vshCommandOpt*() calls (Andrea Bolognani),<br/>
      virsh: Make vshCommandOptScaledInt() use vshCommandOpt() (Andrea Bolognani),<br/>
      virsh: Improve vshCommandOptTimeoutToMs() (Andrea Bolognani),<br/>
      virsh: Use standard error messages in vshCommandOptTimeoutToMs() (Andrea Bolognani),<br/>
      tests: Add a bunch of new tests to virsh-optparse (Andrea Bolognani),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      spec: fixes for recently introduced libxl conf files (Jim Fehlig),<br/>
      virsh: make negative values with vol-resize more convenient (Ján Tomko),<br/>
      qemu: Automatically add &lt;panic&gt; element for pSeries guests. (Andrea Bolognani),<br/>
      qemu: Allow panic device for pSeries guests (Andrea Bolognani),<br/>
      qemu: Improve error message for missing QEMU_CAPS_DEVICE_PANIC. (Andrea Bolognani),<br/>
      Post-release version bump to 1.2.17 (Daniel P. Berrange)<br/>
      </li>

      <li>Cleanups:<br/>
      qemu: monitor: Fix indentation in qemuMonitorJSONGetOneBlockStatsInfo (Peter Krempa),<br/>
      vz_utils: Reformat (Michal Privoznik),<br/>
      vz_storage: Reformat (Michal Privoznik),<br/>
      vz_sdk: Reformat (Michal Privoznik),<br/>
      vz_network: Reformat (Michal Privoznik),<br/>
      vz_driver: Reformat (Michal Privoznik),<br/>
      test: Drop unused attribute @path from testDriver struct (Peter Krempa),<br/>
      test: Drop useless forward declaration (Peter Krempa),<br/>
      vz: fix syntax-check errors (Dmitry Guryanov),<br/>
      virQEMUCapsComputeCmdFlags: Indent correctly (Michal Privoznik),<br/>
      qemuMigrationBeginPhase: Fix function header indentation (Michal Privoznik),<br/>
      qemu: Fix double space in error message in qemuDomainGetVcpusFlags (Peter Krempa),<br/>
      libvirt.spec: Don't expect virt-admin in libvirt-admin yet (Michal Privoznik),<br/>
      netserver: Remove duplicate forward declaration (Martin Kletzander),<br/>
      Revert "Example virt-admin" (Martin Kletzander),<br/>
      apibuild: Fix indentation (Jiri Denemark),<br/>
      parallels: fix formatting errors in parallels driver (Dmitry Guryanov),<br/>
      storage: Remove extraneous @conn from function comments (John Ferlan),<br/>
      remote: fix odd comma operator (Eric Blake),<br/>
      maint: remove incorrect apostrophes from 'its' (Ján Tomko)<br/>
      </li>
    </ul>

    <h3>1.2.16: Jun 01 2015</h3>
    <ul>
      <li>Features:<br/>
      Introduce pci-serial (Michal Privoznik),<br/>
      Introduce virDomainSetUserPassword API (Ján Tomko),<br/>
      libvirt: Introduce protected key mgmt ops (Tony Krowiak),<br/>
      add domain vmport feature (Marc-André Lureau)<br/>
      </li>

      <li>Documentation:<br/>
      update github project name (Daniel P. Berrange),<br/>
      formatstorage: Update &lt;permissions&gt; docs (Cole Robinson),<br/>
      Document new RO repo mirrors (Michal Privoznik),<br/>
      Document that virNodeGetInfo can return mhz == 0. (Richard W.M. Jones),<br/>
      fix a small xml error in docs (Luyao Huang),<br/>
      tests: Fix grammar in comments. (Andrea Bolognani),<br/>
      add domain vmport feature (Marc-André Lureau)<br/>
      </li>

      <li>Portability:<br/>
      qemu: Fix compilation error when enum variable size differs from 'int' (Peter Krempa),<br/>
      bhyve: fix build with gcc48 (Roman Bogorodskiy),<br/>
      Add missing XDR_FLAGS (Pavel Fedin),<br/>
      node_device: fix libvirt build if WITH_HAL is defined (Maxim Nestratov),<br/>
      util: Avoid shadow of 'ulong' in virMemoryMaxValue (Peter Krempa),<br/>
      Fix build --without-network (Martin Kletzander),<br/>
      maint: extend PIE support check (Roman Bogorodskiy),<br/>
      bhyve: fix bhyvexml2argvtest build with gcc (Roman Bogorodskiy)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Allocate priv-&gt;vioserialaddrs unconditionally (Ján Tomko),<br/>
      Properly free the xmlDocPtr when loading pool state (Ján Tomko),<br/>
      storage: Fix problem with disk backend pool allocation calculation (John Ferlan),<br/>
      storage: Don't adjust pool alloc/avail values for disk backend (John Ferlan),<br/>
      virsh: Fix to list online cpus using virsh capabilities (Kothapally Madhu Pavan),<br/>
      Fix the event name in vshEventTrayChangePrint (Ján Tomko),<br/>
      Fix shrinking volumes with the delta flag (Ján Tomko),<br/>
      interface: don't error out if a bond has no interfaces (Lubomir Rintel),<br/>
      qemu: Limit rtc-reset-reinjection requirement to x86 only. (Andrea Bolognani),<br/>
      storage_fs: Create directory with UID if needed (Martin Kletzander),<br/>
      zfs: fix storagepoolxml2xml test (Roman Bogorodskiy),<br/>
      qemu: Force capabilities cache refresh if libvirtd date is different (John Ferlan),<br/>
      qemu: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      conf: Resolve Coverity NEGATIVE_RETURNS (John Ferlan),<br/>
      storage: fs: Only force directory permissions if required (Cole Robinson),<br/>
      parallels: fix possible crash in case of errors in prlsdkLoadDomain (Maxim Nestratov),<br/>
      virsh: reject negative values for scaled integer (Pavel Hrdina),<br/>
      network: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      conf: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      storage: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      netdev: fail when setting up an SRIOV VF if PF is offline (Laine Stump),<br/>
      qemuDomainDetachChrDevice: Fix chardev hot-unplug (Michal Privoznik),<br/>
      qemuDomainAttachChrDevice: Fix chardev hotplug (Michal Privoznik),<br/>
      qemu: Log error if domain uses security driver which is not loaded (Erik Skultety),<br/>
      conf: Restore the XML parser context in virDomainMemoryDefParseXML (Luyao Huang),<br/>
      conf: Catch memory size overflow earlier (Peter Krempa),<br/>
      virfile: virDirCreate: Fix ALLOW_EXIST conditional (Cole Robinson),<br/>
      qemu: Fix numatune nodeset reporting (Martin Kletzander),<br/>
      xenconfig: fix spice mousemode and copypaste (Jim Fehlig),<br/>
      xenconfig: fix spicepasswd handling (Jim Fehlig),<br/>
      node_device: update sriov/iommu info before dumpxml of a device (Laine Stump),<br/>
      virsh: Fix dommemstat --period option type. (Andrea Bolognani),<br/>
      qemu: fix exceptions in qemuAssignDeviceControllerAlias (Laine Stump),<br/>
      qemu: Don't give up on first error in qemuMigrationCancelDriverMirror (Jiri Denemark),<br/>
      reject out of range memory in SetMemory APIs (Ján Tomko),<br/>
      qemu: Clear autofil fill flag when pinning iothread (John Ferlan),<br/>
      virsh: Report an error when cpulist parsing fails (Luyao Huang),<br/>
      Assign virtio-serial addresses after coldplugging a device (Ján Tomko),<br/>
      qemu: vnc: error out for invalid port number (Pavel Hrdina),<br/>
      conf: Remove source host name check for iSCSI (John Ferlan),<br/>
      qemu: fix double free when RNG cold-plug fails (Luyao Huang),<br/>
      libvirt-guests: Initialize SYNC_TIME (Michal Privoznik),<br/>
      conf: Report error for unknown shmem ioeventfd value (Luyao Huang),<br/>
      qemu: Fix balloon size handling with memory hot(un)plug (Peter Krempa),<br/>
      conf: Fix up balloon size after removing a memory device from def (Peter Krempa),<br/>
      caps: Fix regression defaulting to host arch (Cole Robinson),<br/>
      processSerialChangedEvent: Close agent monitor early (Michal Privoznik),<br/>
      qemuDomainShutdownFlags: check for domain activeness prior to guest presence (Michal Privoznik),<br/>
      lxc: don't up the veth interfaces unless explicitly asked to (Lubomir Rintel),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      xen: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Resolve Coverity IDENTICAL_BRANCHES (John Ferlan),<br/>
      vbox: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      libxl: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      conf: Add the cpu duplicate use check for vm numa settings (Luyao Huang),<br/>
      qemu: Properly rename persistent def after migration (Jiri Denemark),<br/>
      storage: fs: Don't try to chown directory unless user requested (Cole Robinson),<br/>
      storage: fs: Don't attempt directory creation if it already exists (Cole Robinson),<br/>
      storage: fs: Don't overwrite virDirCreate error (Cole Robinson),<br/>
      virsh: Don't check migrate parameters (Jiri Denemark),<br/>
      qemu: Forbid unsupported parameters for tunnelled migration (Jiri Denemark),<br/>
      qemu: fix the vm deadlock when deleting a nonexistent iothread (Luyao Huang),<br/>
      tools: fix the wrong check when use virsh setvcpus --maximum (Luyao Huang)<br/>
      </li>

      <li>Improvements:<br/>
      libxl: support QXL video device (Jim Fehlig),<br/>
      libxl: support SPICE graphics for HVM domains (Jim Fehlig),<br/>
      libxl: change reservedVNCPorts to reservedGraphicsPorts (Jim Fehlig),<br/>
      libxl: populate build_info vfb in separate function (Jim Fehlig),<br/>
      debug: assure NULLSTR() around all %s args in debug at top of public APIs (Laine Stump),<br/>
      node_device: more informative error log when device isn't found (Laine Stump),<br/>
      Simplify allocation check in storageVolResize (Ján Tomko),<br/>
      parallels: suppress console output from parallels SDK (Maxim Nestratov),<br/>
      util: make it more robust to calculate timeout value (Zhang Bo),<br/>
      util: improve the sysinfo element XML format (Luyao Huang),<br/>
      conf: Avoid formatting empty redirfilter element (Luyao Huang),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      qemu: Add libvirt version check to refresh capabilities algorithm (John Ferlan),<br/>
      conf: storage: Don't emit empty &lt;permissions&gt; block (Cole Robinson),<br/>
      storage: conf: Don't set any default &lt;mode&gt; in the XML (Cole Robinson),<br/>
      parallels: move up updating parameter in prlsdkLoadDomain (Maxim Nestratov),<br/>
      zfs: fix storagepoolxml2xml test (Roman Bogorodskiy),<br/>
      util: better error message after failure to initialize firewall backend (Laine Stump),<br/>
      interface: allow multiple IPv4 addresses + dhcp on a single interface (Laine Stump),<br/>
      storage: conf: Don't output owner/group -1 (Cole Robinson),<br/>
      sysinfo: Fix reports on ARM (Michal Privoznik),<br/>
      qemu: Implement pci-serial (Michal Privoznik),<br/>
      qemu: wire up virDomainSetUserPassword (Ján Tomko),<br/>
      virsh: add set-user-password command (Ján Tomko),<br/>
      threadpool: Switch to detached threads (Jiri Denemark),<br/>
      Use virDomainDiskByName where appropriate (Jiri Denemark),<br/>
      Add wrappers for virDomainDiskIndexBy* (Jiri Denemark),<br/>
      virDomainNumatuneGetMode: Report if numatune was defined (Michal Privoznik),<br/>
      Taint domains using cdrom-passthrough (John Ferlan),<br/>
      virfile: virDirCreate: Drop redundant FORCE_PERMS flag (Cole Robinson),<br/>
      xenconfig: format spice listenAddr when formating ports (Jim Fehlig),<br/>
      xenconfig: use local variable for graphics def (Jim Fehlig),<br/>
      node_device: replace duplicated code in hal and udev backends (Laine Stump),<br/>
      node_device: new functions to get sriov/iommu info from sysfs (Laine Stump),<br/>
      node device: prepare node_device_linux_sysfs.c to add more functions (Laine Stump),<br/>
      nodedev: change if-else if in update_caps to switch (Laine Stump),<br/>
      conf: make virNodeDevCapData an official type (Laine Stump),<br/>
      virsh: Improve handling of send-process-signal --pid. (Andrea Bolognani),<br/>
      virsh: Improve error message on integer value parsing failure. (Andrea Bolognani),<br/>
      libvirt: tests: test protected key mgmt ops support (Tony Krowiak),<br/>
      libvirt: qemu: enable/disable protected key management ops (Tony Krowiak),<br/>
      libxl: provide impl for nodeGetSecurityModel (Jim Fehlig),<br/>
      qemu: log error when domain has an unsupported IDE controller (Laine Stump),<br/>
      qemu: clean up qemuBuildCommandline loop that builds controller args (Laine Stump),<br/>
      qemu: remove test for allowing ide controller in s390, rename usb tests (Laine Stump),<br/>
      qemu: use controller alias when constructing device/controller args (Laine Stump),<br/>
      conf: utility to return alias of a controller based on type/index (Laine Stump),<br/>
      qemu: Keep track of what disks are being migrated (Jiri Denemark),<br/>
      Move QEMU-only fields from virDomainDiskDef into privateData (Jiri Denemark),<br/>
      Rename virDomainHasBlockjob as qemuDomainHasBlockjob (Jiri Denemark),<br/>
      Add privateData to virDomainDiskDef (Jiri Denemark),<br/>
      Some alignment fixes in lxc_controller and jsontest (Martin Kletzander),<br/>
      gendispatch: Don't generate long lines (Martin Kletzander),<br/>
      virnetserver: Remove unnecessary double space (Martin Kletzander),<br/>
      rpc: Don't mix max_clients and max_workers in PostExecRestart (Martin Kletzander),<br/>
      conf: Expose iothreadids when delete non sequential iothreadids (John Ferlan),<br/>
      parallels: remove connection wide wait timeout (Nikolay Shirokovskiy),<br/>
      qemuMigrationPrepareAny: Drop useless variable @now (zhang bo),<br/>
      maint: Ignore Vim swap files (Andrea Bolognani),<br/>
      virSysinfoParseProcessor: Drop useless check for NULL (Michal Privoznik),<br/>
      libxl: support VNC passwd (Jim Fehlig),<br/>
      conf: Adjust duplicate source host port check (John Ferlan),<br/>
      daemon: Suppress logging of VIR_ERR_NO_DOMAIN_METADATA (Peter Krempa),<br/>
      conf_capabilities: fix wrong indentation (Pavel Hrdina),<br/>
      XML: escape strings where we should do it (Pavel Hrdina),<br/>
      qemu: eliminate duplicated code in qemuBuildDriveDevStr() (Laine Stump),<br/>
      qemu: use qemuDomainMachineIsI440FX() in appropriate place (Laine Stump),<br/>
      Ignore bridge template names with multiple printf conversions (Ján Tomko),<br/>
      conf: Always truncate balloon size to maximum memory size (Peter Krempa),<br/>
      qemu: Convert qemuConnectGetAllDomainStats to use new helpers (Peter Krempa),<br/>
      conf: Add helper to convert list of virDomains to a list of virDomainObjs (Peter Krempa),<br/>
      conf: Refactor domain list collection critical section (Peter Krempa),<br/>
      conf: Rename virDomainObjListFilter type to virDomainObjListACLFilter (Peter Krempa),<br/>
      conf: Extract code to filter domain list into a separate function (Peter Krempa),<br/>
      util: Make the virDomainListFree helper more universal (Peter Krempa),<br/>
      tests: Remove redundant aarch64 tests (Cole Robinson),<br/>
      qemu: multiqueue for ccw devices (Boris Fiuczynski),<br/>
      libxl: support soundhw for hvm domains (Jim Fehlig),<br/>
      libxl: add logrotate config file (Jim Fehlig),<br/>
      qemu: Implement GIC (Michal Privoznik),<br/>
      Introduce GIC feature (Michal Privoznik),<br/>
      polkit: Allow password-less access for 'libvirt' group (Cole Robinson),<br/>
      storage: fs: Fill in permissions on pool refresh (Cole Robinson),<br/>
      tests: add machine vmport qemu test (Marc-André Lureau),<br/>
      qemu: add machine vmport argument (Marc-André Lureau),<br/>
      qemu: add virQEMUCapsSupportsVmport (Marc-André Lureau),<br/>
      qemu: move qemuDomainMachineIs{I440FX,Q35} (Marc-André Lureau),<br/>
      qemu: add QEMU_CAPS_MACHINE_VMPORT_OPT (Marc-André Lureau),<br/>
      domain/conf: add VIR_DOMAIN_FEATURE_VMPORT (Marc-André Lureau),<br/>
      virsh: introduce new macros to help check flag requirements (Pavel Hrdina),<br/>
      qemu: use new macros for setvcpus to check flags and cleanup the code (Pavel Hrdina),<br/>
      use new macro helpers to check flag requirements (Pavel Hrdina),<br/>
      use new macro helpers to check exclusive flags (Pavel Hrdina),<br/>
      internal: introduce macro helpers to check flag requirements (Pavel Hrdina),<br/>
      internal: introduce macro helpers to reject exclusive flags (Pavel Hrdina)<br/>
      </li>
    </ul>

    <h3>1.2.15: May 04 2015</h3>
    <ul>
      <li>Features:<br/>
      Implement virDomainAddIOThread and virDomainDelIOThread (John Ferlan),<br/>
      libxl: Introduce configuration file for libxl driver (Jim Fehlig),<br/>
      Add VIR_DOMAIN_EVENT_ID_DEVICE_ADDED event (Ján Tomko),<br/>
      various improvements to parallels driver (Maxim Nestratov, Dmitry Guryanov)<br/>
      </li>

      <li>Documentation:<br/>
      qemu: Fix comment for timeDelta (Jiri Denemark),<br/>
      Fix typo in comment about memory binding (zhang bo),<br/>
      virhostdev: Fix comments for virHostdevReAttachPCIDevices (John Ferlan),<br/>
      Add articles to virDomainDeviceDetachFlags docs (Ján Tomko),<br/>
      lib: snapshot: Explain that only one layer of images is inserted (Peter Krempa),<br/>
      Visually separate snapshot disk subelements (Ján Tomko),<br/>
      Add info (where necessary) that paths should be specified as absolute (Erik Skultety),<br/>
      Typos: Get rid of dependan(t|cies) (Martin Kletzander),<br/>
      Add Host sFlow into monitoring apps (Martin Kletzander)<br/>
      </li>

      <li>Portability:<br/>
      Fix building virnetserverclientmock with MinGW (Martin Kletzander),<br/>
      Cleanup parameters for mock libraries (Martin Kletzander),<br/>
      Cleanup srcdir usage (Michal Privoznik),<br/>
      Add missing linker flags for MinGW build (Pavel Fedin),<br/>
      build: add pragma directive to fix build on some gcc (Pavel Hrdina),<br/>
      build: avoid obsolete index() (Eric Blake),<br/>
      util: fix build on non-Linux (Roman Bogorodskiy),<br/>
      vircapstest: fix build without LXC, QEMU or XEN (Roman Bogorodskiy),<br/>
      virbuffer: fix build on rhel-6 (Pavel Hrdina),<br/>
      tests: fix build on old 32-bit platforms (Eric Blake),<br/>
      build: provide virNetDevSysfsFile on non-Linux (Eric Blake),<br/>
      build: include correct header for time() (Eric Blake),<br/>
      xen: fix build error on rhel-5 (Pavel Hrdina),<br/>
      qemu: Avoid shadow of 'sync' symbol (Peter Krempa)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: Fix bus and lun checks when scsi-disk.channel not present (John Ferlan),<br/>
      rpm-build: update %files section for libxl (Pavel Hrdina),<br/>
      qemu: blockjob: Call qemuDomainSupportsBlockJobs only on online VMs (Peter Krempa),<br/>
      qemu: Check address type for USB disks (Jiri Denemark),<br/>
      cpu: Honor vendor_id override in host-model (Jiri Denemark),<br/>
      iscsi: do not fail to stop a stopped pool (Ján Tomko),<br/>
      qemu: conf: Reject memory device if it would exceed configured max size (Peter Krempa),<br/>
      qemu: blockCopy: Allow reuse of raw image for shallow block copy (Peter Krempa),<br/>
      tests: free ChardevInfo correctly in qemumonitorjsontest (Zhang Bo),<br/>
      storage: fs: Ignore volumes that fail to open with EACCESS/EPERM (Cole Robinson),<br/>
      storage: If driver startup state syncing fails, delete statefile (Cole Robinson),<br/>
      storage: Don't leave stale state file if pool startup fails (Cole Robinson),<br/>
      storage: Fix autostart dir for qemu:///session (Cole Robinson),<br/>
      qemu: qemuProcessDetectIOThreadPIDs invert checks (John Ferlan),<br/>
      conf: Resolve some Coverity errors (John Ferlan),<br/>
      network: check newDef for used bridge names in addition to def (Laine Stump),<br/>
      network: check for bridge name conflict with existing devices (Laine Stump),<br/>
      network: move auto-assign of bridge name from XML parser to net driver (Laine Stump),<br/>
      test: Fix actual vs. expected in virtTestCompareFiles (Laine Stump),<br/>
      qemu: Resolve Coverity DEADCODE (John Ferlan),<br/>
      util: fix memleak in virStorageSourceClear (zhang bo),<br/>
      storage: Resolve Coverity UNINIT (John Ferlan),<br/>
      Fix check for return value of qemuDomainAgentAvailable() (Martin Kletzander),<br/>
      conf: fix memleak in virDomainHostdevDefClear (Zhang Bo),<br/>
      conf: fix memleak in virDomainNetIpParseXML (Zhang Bo),<br/>
      qemu: fix memleak in virCapabilitiesDomainDataLookup (Zhang Bo),<br/>
      qemu: fix memleaks in qemuBuildCommandLine (Zhang Bo),<br/>
      util: fix memleak in virFindSCSIHostByPCI (Zhang Bo),<br/>
      tests: fix some memleaks in tests (Zhang Bo),<br/>
      qemu: Fix domain object leak in qemuDomainInterfaceAddresses (Peter Krempa),<br/>
      libxl: initialize sdl.opengl defbool in libxlMakeVfb (Jim Fehlig),<br/>
      libxl: initialize vfb defbools in libxlMakeVfb (Olaf Hering),<br/>
      parallels: fix crash in prlsdkAddNet in case of CT definition (Maxim Nestratov),<br/>
      bhyve: fix build in tests (Roman Bogorodskiy),<br/>
      Fix memory leak in virNetSocketNewConnectUNIX (Jiri Denemark),<br/>
      parallels: fix IS_CT macro (Maxim Nestratov),<br/>
      rng: fix port number range validation (Daniel P. Berrange),<br/>
      qemu: Don't fail to reboot domains with unresponsive agent (zhang bo),<br/>
      bhyve: fix build in tests (Roman Bogorodskiy),<br/>
      spec: Fix libxl build with driver modules (Cole Robinson),<br/>
      configure: Fix --loader-nvram typo (Cole Robinson),<br/>
      parallels: don't forget to unlock domain after successful virDomainObjListFindByUUID call (Maxim Nestratov),<br/>
      vircommand: fix polling in virCommandProcessIO (Roman Bogorodskiy),<br/>
      util: storage: Fix possible crash when source path is NULL (Peter Krempa),<br/>
      qemu: Fix issues with maxMemory in qemuDomainSetMemoryFlags() (Luyao Huang),<br/>
      qemu: set macvtap physdevs online when macvtap is set online (Laine Stump),<br/>
      util: set MAC address for VF via netlink message to PF+VF# when possible (Laine Stump),<br/>
      qemu: Always refresh capabilities if no &lt;guests&gt; found (Cole Robinson),<br/>
      scsi: Adjust return values from processLU (John Ferlan),<br/>
      storage: Fix check for stable path check (John Ferlan),<br/>
      domtop: Properly free cpu status (Michal Privoznik),<br/>
      parallels: fix return status for parallelsConnectOpen (Nikolay Shirokovskiy),<br/>
      lxc: fix starting a domain with non-strict numa memory mode (Luyao Huang),<br/>
      lxc: fix starting a domain with a cpuset but no numatune (Luyao Huang),<br/>
      rng: Forbid to validate mismatched &lt;disk&gt; 'device' and 'type' attributes (Erik Skultety),<br/>
      domcaps: Check for architecture more wisely (Michal Privoznik),<br/>
      virNetSocketNewConnectUNIX: Don't unlink(NULL) (Michal Privoznik),<br/>
      libxl: drop virDomainObj lock when destroying a domain (Jim Fehlig),<br/>
      libxl: acquire a job when destroying a domain (Jim Fehlig),<br/>
      virCondWaitUntil: calculate timespec correctly (Michael Chapman),<br/>
      qemu: bulk stats: Ignore errors from missing/inaccessible disks (Peter Krempa),<br/>
      Strip control codes in virBufferEscapeString (Ján Tomko),<br/>
      Ignore storage volumes with control codes in their names (Ján Tomko),<br/>
      Strip control characters from sysfs attributes (Ján Tomko),<br/>
      tests: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      virsh: fix regression in 'virsh event' by domain (Eric Blake),<br/>
      qemu: monitor: Fix qemuMonitorGetAllBlockStatsInfo with HMP (Peter Krempa),<br/>
      qemu: monitor: Ensure that qemuMonitorSetLink is called with non-null name (Peter Krempa),<br/>
      virNetSocketNewConnectUNIX: Use flocks when spawning a daemon (Michal Privoznik),<br/>
      sanlock: Use VIR_ERR_RESOURCE_BUSY if sanlock_acquire fails (Jiri Denemark),<br/>
      hostdev: fix loop index error when resetvfnetconfig (Huanle Han),<br/>
      qemu: fix index error when clean up vport profile (Huanle Han),<br/>
      virt-aa-helper: add unix channels (esp for qemu-guest-agent) (Serge Hallyn),<br/>
      qemu: save domain status after set memory parameters (Shanzhi Yu),<br/>
      virsh: improve the error for wrong memtune parameters (Shanzhi Yu),<br/>
      qemu: drivePivot: Fix assumption when 'block-job-complete' fails (Peter Krempa),<br/>
      qemu: Fix condition for checking vcpu when pinning vcpus (Peter Krempa),<br/>
      qemu: Enforce WWN to be unique among VM's disks (Peter Krempa),<br/>
      virBitmap: Place virBitmapIsAllClear check after virBitmapParse calls (Erik Skultety),<br/>
      Fix usb device version parsing issues (Ján Tomko),<br/>
      Support IPv6 in networkGetNetworkAddress (Ján Tomko),<br/>
      util: Update virNetDevGetIPAddress to get IPv6 addresses (Luyao Huang),<br/>
      parallels: fix virDomainDefineXML for domain in saved state (Dmitry Guryanov),<br/>
      conf: fix virDomainDefFormatInternal for parallels (Dmitry Guryanov),<br/>
      conf: fix virDomainDefParseXML for parallels (Dmitry Guryanov),<br/>
      storage: Don't duplicate efforts of backend driver (John Ferlan),<br/>
      storage: Need to update freeExtent at delete primary partition (John Ferlan),<br/>
      storage: Fix issues in storageVolResize (John Ferlan),<br/>
      Open /proc/PID/ns/* read-only to avoid getting permission denied (Cédric Bosdonnat),<br/>
      lxc: create the required directories upon driver start (Lubomir Rintel),<br/>
      util: file: Don't carelessly sanitize URIs (Peter Krempa),<br/>
      fix memleak in qemuRestoreCgroupState (Luyao Huang),<br/>
      qemuProcessHook: Call virNuma*() only when needed (Michal Privoznik),<br/>
      parallels: delete old networks in prlsdkDoApplyConfig before adding new ones (Maxim Nestratov),<br/>
      util: fix removal of callbacks in virCloseCallbacksRun (Michael Chapman),<br/>
      qemu: fix race between disk mirror fail and cancel (Michael Chapman),<br/>
      qemu: fix error propagation in qemuMigrationBegin (Michael Chapman),<br/>
      qemu: fix crash in qemuProcessAutoDestroy (Michael Chapman),<br/>
      virQEMUDriverGetConfig: Fix memleak (Michal Privoznik),<br/>
      virDomainVirtioSerialAddrSetFree: Fix memleak (Michal Privoznik),<br/>
      qemuSetupCgroupForVcpu: Fix memleak (Michal Privoznik),<br/>
      libvirt: virsh: Kill all uses of __FUNCTION__ in error messages (Noella Ashu),<br/>
      virsh: Fix domifaddr output in quiet mode (Luyao Huang),<br/>
      libxl: fix dom0 balloon logic (Jim Fehlig),<br/>
      hostdev: Fix index error in loop after remove an element (Huanle Han),<br/>
      Fix xlconfigtest with older libxl (Ján Tomko),<br/>
      iscsi: Fix exit path for virStorageBackendISCSIFindLUs failure (John Ferlan),<br/>
      qemuDomainBlockCopy: Check @granularity to be a power of two (Luyao Huang),<br/>
      nodeinfodata: Remove broken symlinks and uneeded files (Michal Privoznik),<br/>
      qemu: lifecycle: make agent-mode shutdown and reboot timeout (zhang bo)<br/>
      </li>

      <li>Improvements:<br/>
      main: add new generated files to .gitignore (Pavel Hrdina),<br/>
      libxl: provide integration with lock manager (Jim Fehlig),<br/>
      domain: conf: Drop unused OSTYPE_AIX (Cole Robinson),<br/>
      qemu: migration: use sync block job helpers (Michael Chapman),<br/>
      qemuDomainBlockJobAbort: use sync block job helpers (Michael Chapman),<br/>
      qemuProcessStop: wake up pending sync block jobs (Michael Chapman),<br/>
      qemuBlockJobSync*: introduce sync block job helpers (Michael Chapman),<br/>
      qemuBlockJobEventProcess: move to new source file (Michael Chapman),<br/>
      qemu: Validate available slot count for memory devices (Peter Krempa),<br/>
      qemu: command: Validate that memory devices slot ID is in range (Peter Krempa),<br/>
      parallels: implement domainDetachDevice and domainDetachDeviceFlags (Maxim Nestratov),<br/>
      parallels: add prlsdkDelDisk and prlsdkGetDiskIndex functions (Maxim Nestratov),<br/>
      qemu: make qemuMonitorChardevInfoFree non-static (Zhang Bo),<br/>
      storage: Break out storageDriverLoadPoolState (Cole Robinson),<br/>
      qemu: Remove need for qemuMonitorIOThreadInfoFree (John Ferlan),<br/>
      qemu: Remove need for qemuDomainParseIOThreadAlias (John Ferlan),<br/>
      conf: explicitly initialize 'cpumask' variable (Roman Bogorodskiy),<br/>
      virsh: Add iothreadadd and iothreaddel commands (John Ferlan),<br/>
      qemu: Add support to Add/Delete IOThreads (John Ferlan),<br/>
      domain: Introduce virDomainIOThreadSchedDelId (John Ferlan),<br/>
      remote: Add support for AddIOThread and DelIOThread (John Ferlan),<br/>
      conf: Adjust the iothreadsched expectations (John Ferlan),<br/>
      Move iothreadspin information into iothreadids (John Ferlan),<br/>
      conf: Move virDomainPinIsDuplicate and make static (John Ferlan),<br/>
      qemu: Use domain iothreadids to IOThread's 'thread_id' (John Ferlan),<br/>
      conf: Add new domain XML element 'iothreadids' (John Ferlan),<br/>
      openvz: Drop useless domain lookup (Michal Privoznik),<br/>
      qemu: Connect to guest agent after channel hotplug (Peter Krempa),<br/>
      qemu: agent: Differentiate errors when the agent channel was hotplugged (Peter Krempa),<br/>
      qemu: Reuse qemuDomainAgentAvailable in qemuDomainInterfaceAddresses (Peter Krempa),<br/>
      qemu: agent: Reuse virJSONValueObjectCreateVArgs in qemuAgentMakeCommand (Peter Krempa),<br/>
      libxl: remove duplicate check for pci subsystem type (Olaf Hering),<br/>
      libxl: use pci init and dispose functions (Olaf Hering),<br/>
      hostdev: fix net config restore error (Huanle Han),<br/>
      hostdev: Create virHostdevIsPCINetDevice (Huanle Han),<br/>
      qemu: Build nvram directory at driver startup (Cole Robinson),<br/>
      qemu: Build channel autosocket directory at driver startup (Cole Robinson),<br/>
      qemu: chown autoDumpPath on driver startup (Cole Robinson),<br/>
      qemu: conf: Clarify paths that are relative to libDir (Cole Robinson),<br/>
      tests: qemu: Couple aarch64 CPU tests (Cole Robinson),<br/>
      migration: Usable time statistics without requiring NTP (Jiri Denemark),<br/>
      uml: s/virDomainObjListFindByID/virDomainObjListFindByUUID/ (Michal Privoznik),<br/>
      virDomainObjList: Introduce yet another hash table (Michal Privoznik),<br/>
      virDomainObjListFindByName: Return referenced object (Michal Privoznik),<br/>
      Introduce virDomainObjEndAPI (Michal Privoznik),<br/>
      virDomainObjListNew: Use virObjectFreeHashData (Michal Privoznik),<br/>
      virDomainObjListAddLocked: s/false/NULL/ for @oldDef (Michal Privoznik),<br/>
      parallels: implement .domainGetMaxMemory (Dmitry Guryanov),<br/>
      Apparmor: allow reading block-rbd.so (Cédric Bosdonnat),<br/>
      Allow access to vendor and device file for PCI device passthrough (Cédric Bosdonnat),<br/>
      qemu: cgroup: Fix priorities when setting emulatorpin (Peter Krempa),<br/>
      tests: Add VIR_TEST_REGENERATE_OUTPUT (Cole Robinson),<br/>
      tests: Add virtTestCompareToFile (Cole Robinson),<br/>
      tests: Use *DefParseFile more (Cole Robinson),<br/>
      tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE (Cole Robinson),<br/>
      parallels_sdk: Utilize parallelsDomObjFromDomain() (Michal Privoznik),<br/>
      parallels_driver: Utilize parallelsDomObjFromDomain() (Michal Privoznik),<br/>
      parallels: Introduce parallelsDomObjFromDomain() (Michal Privoznik),<br/>
      struct _parallelsConn: Mark @domains as immutable pointer (Michal Privoznik),<br/>
      spec: Point fedora --with-loader-nvram at nightly firmware repo (Cole Robinson),<br/>
      configure: Report --with-loader-nvram value in summary (Cole Robinson),<br/>
      locking: relax PID requirement (Jim Fehlig),<br/>
      util: storage: Improve error message when requesting image above 'start' (Peter Krempa),<br/>
      util: storage: Add hint to error message that indexed access was used (Peter Krempa),<br/>
      util: command: Deduplicate code in virCommandNewArgList (Peter Krempa),<br/>
      qemu: migration: Refactor hostdev validation in migration check (Peter Krempa),<br/>
      processNicRxFilterChangedEvent: Take appropriate actions for NET_TYPE_NETWORK too (Michal Privoznik),<br/>
      virDomainActualNetDefContentsFormat: Format class_id only for status XML (Michal Privoznik),<br/>
      scsi: Change return values for virStorageBackendSCSIFindLUs (John Ferlan),<br/>
      scsi: Adjust return value for virStorageBackendSCSINewLun (John Ferlan),<br/>
      storage: Split out the stable path check (John Ferlan),<br/>
      xend: Remove a couple of unused function prototypes. (Richard W.M. Jones),<br/>
      domain: conf: Drop expectedVirtTypes (Cole Robinson),<br/>
      caps: Use DomainDataLookup to replace GuestDefault* (Cole Robinson),<br/>
      domain: conf: Use CapabilitiesDomainDataLookup for caps validation (Cole Robinson),<br/>
      domain: conf: Do ostype/arch/machine parsing earlier (Cole Robinson),<br/>
      caps: Add virCapabilitiesDomainDataLookup (Cole Robinson),<br/>
      caps: Convert to use VIR_DOMAIN_VIRT internally (Cole Robinson),<br/>
      domain: Convert os.type to VIR_DOMAIN_OSTYPE enum (Cole Robinson),<br/>
      caps: Switch AddGuest to take VIR_DOMAIN_OSTYPE value (Cole Robinson),<br/>
      caps: Use an enum internally for ostype value (Cole Robinson),<br/>
      domain: conf: Don't validate VM ostype/arch at daemon startup (Cole Robinson),<br/>
      domain: conf: Better errors on bad os &lt;type&gt; values (Cole Robinson),<br/>
      parallels: make device addressing consistent (Nikolay Shirokovskiy),<br/>
      rng: Move sgio attr definition to a separate block (Erik Skultety),<br/>
      Apparmor: removed duplicate nscd rules (Cédric Bosdonnat),<br/>
      schema: Allow multiple machines for VMs and unite architectures (Martin Kletzander),<br/>
      qemuDomainShutdownFlags: Set fakeReboot more frequently (zhang bo),<br/>
      Introduce virNetDevBandwidthUpdateFilter (Michal Privoznik),<br/>
      virnetdevbandwidth.c: Separate tc filter creation to a function (Michal Privoznik),<br/>
      virNetDevBandwidthSet: Add priority to filter (Michal Privoznik),<br/>
      virDomainActualNetDefContentsFormat: Format class_id more frequently (Michal Privoznik),<br/>
      nwfilter: Partly initialize driver even for non-privileged users (Michal Privoznik),<br/>
      lxc: move wireless PHYs to a network namespace (Lubomir Rintel),<br/>
      libxl: Move job acquisition in libxlDomainStart to callers (Jim Fehlig),<br/>
      libxl: support HVM direct kernel boot (Jim Fehlig),<br/>
      xenconfig: don't use "kernel" for hvmloader (Jim Fehlig),<br/>
      xenconfig: move &lt;os&gt; parsing/formating to config-specific files (Jim Fehlig),<br/>
      xenconfig: remove redunant parsing of device_model (Jim Fehlig),<br/>
      xenconfig: export xenConfigCopyString (Jim Fehlig),<br/>
      storage: Refactor virStorageBackendSCSINewLun (John Ferlan),<br/>
      qemu: monitor: Refactor and fix monitor checking (Peter Krempa),<br/>
      daemon: Prefix sysctl configuration filename with a number (Jiri Denemark),<br/>
      RNG schema: allow plain @floor to &lt;bandwidth/&gt; (Michal Privoznik),<br/>
      virNetDevBandwidthPlug: Update function description (Michal Privoznik),<br/>
      Add functions dealing with control characters in strings (Ján Tomko),<br/>
      tests: rename testStripIPv6BracketsData to testStripData (Ján Tomko),<br/>
      Add an example for EVENT_ID_DEVICE_ADDED (Ján Tomko),<br/>
      Emit VIR_DOMAIN_EVENT_ID_DEVICE_ADDED in the QEMU driver (Ján Tomko),<br/>
      Cleanup "/sys/class/net" usage (Michal Privoznik),<br/>
      tests: Add virnetdevtestdata to EXTRA_DIST (Michal Privoznik),<br/>
      node: udev: Remove some redundant error reports (Peter Krempa),<br/>
      virPidFileConstructPath: Drop useless VIR_FREE() (Michal Privoznik),<br/>
      qemu: monitor: @running in qemuMonitorGetStatus is always non-NULL (Peter Krempa),<br/>
      qemu: monitor: Don't use 'ret' variable where not necessary (Peter Krempa),<br/>
      qemu: monitor: Sanitize control flow in qemuMonitorSetCapabilities (Peter Krempa),<br/>
      qemu: monitor: Clean up coding style (Peter Krempa),<br/>
      json: export non-static functions (Martin Kletzander),<br/>
      Change virConnectPtr into virObjectLocklable (Martin Kletzander),<br/>
      closeCallback is already lockable, initialize it as such (Martin Kletzander),<br/>
      configure: Align messages (Martin Kletzander),<br/>
      storage: Add duplicate devices check for zfs pool def (John Ferlan),<br/>
      storage: Add duplicate source pool for Gluster pool def (John Ferlan),<br/>
      storage: Add duplicate host check for Sheepdog pool def (John Ferlan),<br/>
      storage: Remove default from switch in virStoragePoolSourceFindDuplicate (John Ferlan),<br/>
      storage: Use virStoragePoolSourceMatchSingleHost for NETFS (John Ferlan),<br/>
      storage: Add check for different ports for host duplicate matching (John Ferlan),<br/>
      storage: Create virStoragePoolSourceMatchSingleHost (John Ferlan),<br/>
      storage: Refactor iSCSI Source matching (John Ferlan),<br/>
      Introduce virnetdevtest (Michal Privoznik),<br/>
      cfg: Disallow usage of 'index' as variable name (John Ferlan),<br/>
      nwfilter: Change 'index' to 'idx' (John Ferlan),<br/>
      snapshot: Change 'index' to 'idx' (John Ferlan),<br/>
      util: Use 'idx' instead of 'index' (John Ferlan),<br/>
      qemu: Adjust the prototype to match the function (John Ferlan),<br/>
      sparc: Add default PCI root controller (Martin Kletzander),<br/>
      qemu: Use 'idx' instead of 'index' for variable name (John Ferlan),<br/>
      qemu: Refactor qemuDomainBlockJobAbort() (Peter Krempa),<br/>
      qemu: blockPull: Refactor the rest of qemuDomainBlockJobImpl (Peter Krempa),<br/>
      qemu: blockjob: Separate qemuDomainBlockJobAbort from qemuDomainBlockJobImpl (Peter Krempa),<br/>
      qemu: blockjob: Split qemuDomainBlockJobSetSpeed from qemuDomainBlockJobImpl (Peter Krempa),<br/>
      qemu: monitor: Extract handling of JSON block job error codes (Peter Krempa),<br/>
      qemu: monitor: json: Refactor error code class checker (Peter Krempa),<br/>
      conf: Refactor virDomainVcpuPinDefParseXML (Peter Krempa),<br/>
      conf: Error out if iothread id is missing in iothreadpin (Peter Krempa),<br/>
      onf: Split up virDomainVcpuPinDefParseXML (Peter Krempa),<br/>
      conf: Split out parsing of emulatorpin (Peter Krempa),<br/>
      conf: ABI: Check WWN in disk abi stability check (Peter Krempa),<br/>
      Convert virDomainPinIsDuplicate into bool return (John Ferlan),<br/>
      Rename qemuCheckIothreads to qemuCheckIOThreads (John Ferlan),<br/>
      Rewrite vshParseCPUList (Ján Tomko),<br/>
      Rewrite vshPrintPinInfo (Ján Tomko),<br/>
      Parallels: implemented domainAttachDevice (Alexander Burluka),<br/>
      Parallels: implement domainAttachDeviceFlags (Alexander Burluka),<br/>
      Parallels: remove disk serial number check (Alexander Burluka),<br/>
      Remove overengineered loop (Ján Tomko),<br/>
      Introduce struct _virStorageBackendQemuImgInfo (Ján Tomko),<br/>
      Rename virStorageBackendCreateQemuImgCmd (Ján Tomko),<br/>
      Use XPath when parsing snapshot disk definition (Ján Tomko),<br/>
      Split out storage format 'compat' attribute sanity check (Ján Tomko),<br/>
      Remove feature formating funcs from pool-specific options (Ján Tomko),<br/>
      Rewrite usb device version parsing (Ján Tomko),<br/>
      Do xml-&gt;xml test for usb-redir-filter (Ján Tomko),<br/>
      Do not require virtio-pci devices when using virtio-mmio (Ján Tomko),<br/>
      qemuMigrationPrecreateStorage: Fix debug message (Michal Privoznik),<br/>
      qemu_migration.c: sleep first before checking for migration status. (Xing Lin),<br/>
      conf: Don't output &lt;cpu&gt; tag if it contains no information. (Andrea Bolognani),<br/>
      qemu: qemuDomainHotplugVcpus - separate out pin adjustment code (John Ferlan),<br/>
      AUTHORS: Add my email address to AUTHORS.in (Dmitry Guryanov),<br/>
      util: Replace virNetDevGetIPv4Address with virNetDevGetIPAddress (John Ferlan),<br/>
      parallels: add implicit input devices (Dmitry Guryanov),<br/>
      conf: add input device type for parallels containers (Dmitry Guryanov),<br/>
      conf: return proper default video type for parallels (Dmitry Guryanov),<br/>
      conf: add VIR_DOMAIN_VIDEO_TYPE_PARALLELS video type (Dmitry Guryanov),<br/>
      parallels: don't fill net adapter model for containers (Dmitry Guryanov),<br/>
      parallels: fill adapter model in virDomainNetDef (Dmitry Guryanov),<br/>
      parallels: add controllers in prlsdkLoadDomain (Dmitry Guryanov),<br/>
      parallels: report, that cdroms are readonly (Dmitry Guryanov),<br/>
      parallels: implement virDomainManagedSave (Dmitry Guryanov),<br/>
      parallels: split prlsdkDomainChangeState function (Dmitry Guryanov),<br/>
      parallels: fix headers in parallels_sdk.h (Dmitry Guryanov),<br/>
      qemu: qemuDomainHotplugVcpus - separate out the del cgroup and pin (John Ferlan),<br/>
      qemu: qemuDomainHotplugVcpus - separate out the add cgroup (John Ferlan),<br/>
      cgroup: Use virCgroupNewThread (John Ferlan),<br/>
      cgroup: Introduce virCgroupNewThread (John Ferlan),<br/>
      qemu: blockPivot: Don't pause the VM any more since we don't use drive-reopen (Peter Krempa),<br/>
      qemu: Clean up old leftovers in qemuMonitorDrivePivot (Peter Krempa),<br/>
      qemu: blockjob: Use the new helpers in qemuDomainGetBlockJobInfo (Peter Krempa),<br/>
      qemu: domain: Add helper to check block job support (Peter Krempa),<br/>
      qemu: domain: Introduce helper to retrieve domain monitor object (Peter Krempa),<br/>
      Apparmor qemu abstraction fixes for SLES (Cédric Bosdonnat),<br/>
      test: Add tests for virFileSanitizePath (Peter Krempa),<br/>
      virLXCControllerSetupResourceLimits: Call virNuma*() iff needed (Michal Privoznik),<br/>
      vbox: Implement virDomainSendKey (Dawid Zamirski),<br/>
      vbox: Register IKeyboard with the unified API. (Dawid Zamirski),<br/>
      vircgroup: Introduce virCgroupControllerAvailable (Michal Privoznik),<br/>
      qemu_driver: check caps after starting block job (Michael Chapman),<br/>
      qemu_migrate: use nested job when adding NBD to cookie (Michael Chapman),<br/>
      storage: Introduce storagePoolUpdateAllState function (Erik Skultety),<br/>
      conf: Introduce virStoragePoolLoadAllState &amp;&amp; virStoragePoolLoadState (Erik Skultety),<br/>
      storage: Add support for storage pool state XML (Erik Skultety),<br/>
      hostdev: Report the domain name for used hostdevs during nodedev-detach (Shivaprasad G Bhat),<br/>
      virsh: Improve change-media success message (Cole Robinson),<br/>
      interface: allow multiple IPv4 addresses in interface XML (Laine Stump),<br/>
      virsh.pod: Remove redundant --config from attach-interface (Jiri Denemark),<br/>
      esx: esxNodeGetFreeMemory return info from host. (Dawid Zamirski),<br/>
      esx: add esxVI_GetInt (Dawid Zamirski),<br/>
      conf: Change virStoragePoolSaveConfig prototype s/configDir/configFile (Erik Skultety),<br/>
      conf: Introduce virStoragePoolSaveState (Erik Skultety),<br/>
      conf: Introduce virStoragePoolDefFormatBuf (Erik Skultety),<br/>
      Auto add virtio-serial controllers (Ján Tomko),<br/>
      Assign an address when hotplugging a virtio-serial device (Ján Tomko),<br/>
      Expand the address set when attaching a virtio-serial controller (Ján Tomko),<br/>
      Allocate virtio-serial addresses when starting a domain (Ján Tomko),<br/>
      Add functions to track virtio-serial addresses (Ján Tomko),<br/>
      Add test for virtio serial port assignment (Ján Tomko),<br/>
      scsi: Remove unused 'type_path' in processLU (John Ferlan),<br/>
      iscsi: Use error message from virStorageBackendSCSIFindLUs (John Ferlan),<br/>
      conf: Introduce virStoragePoolSaveXML (Erik Skultety),<br/>
      storage: Remove unused attribute conn from 'checkPool' callback (Erik Skultety),<br/>
      Fix indentation in cmdVcpuPin (Ján Tomko),<br/>
      virsh: remove stale comment (Ján Tomko),<br/>
      conf: Rename virDomainHasDiskMirror and detect block jobs properly (Shanzhi Yu),<br/>
      qemu: snapshot: Check for block jobs individually (Peter Krempa),<br/>
      Remove unnecessary includes from virsh.h (Ján Tomko),<br/>
      Remove unused includes from virsh (Ján Tomko),<br/>
      Clean up headers in src/util/virutil.h (Ján Tomko),<br/>
      Do not include cpu_map.h in libvirtd.c (Ján Tomko),<br/>
      Use the DEFAULT_DRIVER_DIR macro (Ján Tomko),<br/>
      Remove unused macros (Ján Tomko),<br/>
      qemu: Copy bitmap in a sane way (Peter Krempa),<br/>
      qemu: cgroup: Kill qemuSetupCgroupVcpuPin() (Peter Krempa),<br/>
      qemu: cgroup: Kill qemuSetupCgroupIOThreadsPin() (Peter Krempa),<br/>
      qemu: cgroup: Rename qemuSetupCgroupEmulatorPin to qemuSetupCgroupCpusetCpus (Peter Krempa),<br/>
      qemu: cgroup: Use priv-&gt;autoCpuset instead of using qemuPrepareCpumap() (Peter Krempa),<br/>
      qemu: cgroup: Properly set up vcpu pinning (Peter Krempa),<br/>
      qemu: cgroup: Refactor setup for IOThread cgroups (Peter Krempa),<br/>
      qemu: cgroup: Store auto cpuset instead of re-creating it on demand (Peter Krempa)<br/>
      </li>
    </ul>

    <h3>1.2.14: Apr 02 2015</h3>
    <ul>
      <li>Features:<br/>
      qemu: Implement memory device hotplug (Peter Krempa),<br/>
      Implement public API for virDomainPinIOThread (John Ferlan),<br/>
      Implement public API for virDomainGetIOThreadsInfo (John Ferlan),<br/>
      SRIOV NIC offload feature discovery (James Chapman)<br/>
      </li>

      <li>Documentation:<br/>
      virCgroupNewPartition: Fix comment (Michal Privoznik),<br/>
      route element must specify network address (Chen Fan),<br/>
      no 'via' attribute in route element (Chen Fan),<br/>
      Document that USB hostdevs do not need nodeDettach (Ján Tomko),<br/>
      Document behavior of compat when creating qcow2 volumes (Ján Tomko),<br/>
      Fix typo in error message (Ján Tomko),<br/>
      Fix common misspellings (Martin Kletzander),<br/>
      Fix doc for backingStore (Deepak Shetty),<br/>
      schema and docs for the midonet virtualport type (Antoni Segura Puimedon),<br/>
      add a note that spice channel is usable only with spice graphics (Pavel Hrdina),<br/>
      net-define: update or unify documentation (Pavel Hrdina),<br/>
      pool-define: update and unify documentation (Pavel Hrdina),<br/>
      iface-define: update and unify documentation (Pavel Hrdina),<br/>
      Fix syntax for vcpupin description (John Ferlan),<br/>
      virsh.pod: Add information regarding LXC for setmem, memtune, and dominfo (John Ferlan),<br/>
      add a note that attr 'managed' is only used by PCI devices (Erik Skultety)<br/>
      </li>

      <li>Portability:<br/>
      build: avoid variable named 'interface', for mingw (Eric Blake),<br/>
      vircgroup: Fix build issue mingw cross compile (John Ferlan),<br/>
      vircgroup: Fix build issue on mingw cross compile (John Ferlan),<br/>
      virnetdev: fix build with old kernel (Pavel Hrdina),<br/>
      Fix build on mingw (Ján Tomko)<br/>
      </li>

      <li>Bug Fixes:<br/>
      qemu: blockjob: Synchronously update backing chain in XML on ABORT/PIVOT (Peter Krempa),<br/>
      qemu: processBlockJob: Don't unlock @vm twice (Peter Krempa),<br/>
      qemu: blockCopy: Pass adjusted bandwidth when called via blockRebase (Peter Krempa),<br/>
      virsh: blockCopy: Add missing jump on error path (Luyao Huang),<br/>
      qemuDomainGetNumaParameters: Check for the correct CGroup controller (Michal Privoznik),<br/>
      virCgroupController: Check the enum fits into 'int' (Michal Privoznik),<br/>
      virnetlink: fix build error (Pavel Hrdina),<br/>
      qemu: end the job when try to blockcopy to non-file destination (Shanzhi Yu),<br/>
      relaxng: allow : in /dev/disk/by-path names (Eric Blake),<br/>
      libxl: Fix memory leak if pthread_create fails. (Konrad Rzeszutek Wilk),<br/>
      util: use netlink to delete bridge devices (Laine Stump),<br/>
      qemu: command: Fix property name for start address of a pc-dimm module (Luyao Huang),<br/>
      qemu: command: Check for empty network source when formatting drive cmd (Peter Krempa),<br/>
      qemu: command: Report error when formatting network source with protocol _NONE (Peter Krempa),<br/>
      build: fix race when creating the cpu_map.xml symlink (Amy Fong),<br/>
      Don't validata filesystem target type (Guido Günther),<br/>
      rpc: Don't unref identity object while callbacks still can be executed (Peter Krempa),<br/>
      util: identity: Harden virIdentitySetCurrent() (Peter Krempa),<br/>
      qemu: domain: Don't leak device alias list (Peter Krempa),<br/>
      rpc: serverclient: Clear pointer with NULL instead of 0 (Peter Krempa),<br/>
      qemu: fix set vcpus on host without NUMA (Pavel Hrdina),<br/>
      qemu: monitor: Don't leak @props with non-JSON in qemuMonitorAddObject (Peter Krempa),<br/>
      qemu: Don't return memory device config on error in qemuBuildMemoryBackendStr (Peter Krempa),<br/>
      Fix underlinking of libvirt_driver_interface.so (Natanael Copa),<br/>
      networkStateInitialize: Don't lock network driver (Michal Privoznik),<br/>
      qemu: Migrate memory on numatune change (Martin Kletzander),<br/>
      parallels: fix libvirt crash if parallelsNetworkOpen fails (Maxim Nestratov),<br/>
      qemu: do not overwrite the error in qemuDomainObjExitMonitor (Luyao Huang),<br/>
      libxl: Don't overwrite errors from xenconfig (Jim Fehlig),<br/>
      qemu: Fix two issues in qemuDomainSetVcpus error handling (John Ferlan),<br/>
      qemu: track 'cancelling' migration state (Eric Blake),<br/>
      parallels: don't prevent domain define if VIR_DOMAIN_NET_TYPE_BRIDGE (Maxim Nestratov),<br/>
      parallels: switch off offline management feature (Maxim Nestratov),<br/>
      parallels: set correct network adapter link state (Maxim Nestratov),<br/>
      parallels: fix parallelsLoadNetworks (Maxim Nestratov),<br/>
      network: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemuGetDHCPInterfaces: Don't leak @network (Michal Privoznik),<br/>
      cmdDomIfAddr: Free @ip_addr_str (Michal Privoznik),<br/>
      qemu: read backing chain names from qemu (Eric Blake),<br/>
      qemu: driver: Fix cold-update of removable storage devices (Peter Krempa),<br/>
      parallels: fix home directory for VMs (Maxim Nestratov),<br/>
      parallels: don't forget to unlock domain if unregister fails (Maxim Nestratov),<br/>
      parallels: set cpu mode when applying xml configuration (Mikhail Feoktistov),<br/>
      conf: Use correct type for balloon stats period (Martin Kletzander),<br/>
      qemu: Don't duplicate errors when settings stats period (Martin Kletzander),<br/>
      libxl: fix regression introduced by commit 4ab8cd77 (Jim Fehlig),<br/>
      qemu: block-commit: Mark disk in block jobs only on successful command (Peter Krempa),<br/>
      daemon: avoid memleak when ListAll returns nothing (Eric Blake),<br/>
      qemu: Fix possible memory leak in qemuDomainPinVcpuFlags (John Ferlan),<br/>
      qemu: Disallow concurrent block jobs on a single disk (Peter Krempa),<br/>
      qemu: event: Don't fiddle with disk backing trees without a job (Peter Krempa),<br/>
      qemu: Check for negative port values in network drive configuration (Erik Skultety),<br/>
      network: avoid memory leak of dnsmasq capabilities (Eric Blake),<br/>
      virsh: fix report of non-active commit completion (Eric Blake),<br/>
      util: don't fail if no PortData is found while getting migrateData (zhang bo),<br/>
      libxl: prevent attaching multiple netdevs with the same MAC (Marek Marczykowski-Górecki),<br/>
      parallels: fix prlsdkCheckUnsupportedParams checks (Maxim Nestratov),<br/>
      Error out on an address for isa-serial in QEMU driver. (Ján Tomko),<br/>
      xenapi: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      xenapi: Resolve Coverity REVERSE_INULL (John Ferlan),<br/>
      xenapi: Resolve Coverity NULL_RETURNS (John Ferlan),<br/>
      xenapi: Resolve Coverity NO_EFFECT (John Ferlan),<br/>
      xenapi: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      conf: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      parallels: prevent domain define only if vcpupin is specified (Maxim Nestratov),<br/>
      parallels: prevent domain define only if NUMA is really specified (Maxim Nestratov),<br/>
      parallels: don't forget to unlock domain in parallelsDomainHasManagedSaveImage (Maxim Nestratov),<br/>
      domain_conf: fix crash in virDomainObjListFindByUUIDInternal (Michael Chapman),<br/>
      {domain, network}_conf: disable autostart when deleting config (Michael Chapman),<br/>
      virQEMUCapsInitQMP: Don't dispose locked @vm (Michal Privoznik),<br/>
      qemu: fix memory leak in qemuAgentGetFSInfo (Chen Fan),<br/>
      qemu: don't fill in nicindexes for session mode libvirtd (Laine Stump),<br/>
      virnet*: Don't unlock object in dispose (Michal Privoznik),<br/>
      sanlock: Don't spam logs with "target pid not found" (Jiri Denemark),<br/>
      qemu: Resolve Coverity CHECKED_RETURN issue (John Ferlan),<br/>
      conf: Remove duplicate entries in &lt;metadata&gt; by namespace (Peter Krempa),<br/>
      qemu: Allow spaces in disk serial (Michal Privoznik),<br/>
      parallels: Cleanup partly opened drivers on connect open failure (Michal Privoznik),<br/>
      qemu: snapshot: Don't skip check for qcow2 format with network disks (Shanzhi Yu),<br/>
      testNetworkUpdate: Unlock network at the end (Michal Privoznik),<br/>
      qemuProcessReconnect: Fill in pid file path (Michal Privoznik),<br/>
      qemu: check defaultMode for spice graphics independently (Pavel Hrdina),<br/>
      schema: Fix interface link state schema (Peter Krempa),<br/>
      qemu: Don't crash in qemuDomainOpenChannel() (Martin Kletzander),<br/>
      disk: Provide a default storage source format type. (John Ferlan),<br/>
      disk: Disallow duplicated target 'dev' values (John Ferlan),<br/>
      phyp: Fix error messages mentioning memory (Peter Krempa),<br/>
      storage: sheepdog: Avoid skipping variable initialization (Peter Krempa),<br/>
      Check if domain is running in qemuDomainAgentIsAvailable (Ján Tomko),<br/>
      Revert "Restore skipping of setting capacity" (Ján Tomko)<br/>
      </li>

      <li>Improvements:<br/>
      tests: nodeinfo: Add test for RHELSA on APM mustang (Cole Robinson),<br/>
      tests: nodeinfo: Test F21 aarch64 on APM mustang (Cole Robinson),<br/>
      qemu: Extract internals of processBlockJobEvent into a helper (Peter Krempa),<br/>
      virCgroupNew: Enhance debug message (Michal Privoznik),<br/>
      tests: introduce qemucaps2xmlmock (Pavel Hrdina),<br/>
      nodeinfo: Increase the num of CPU thread siblings to a larger value (Wei Huang),<br/>
      util: use netlink to create bridge devices (Laine Stump),<br/>
      util: replace body of virNetDevMacVLanDelete() with virNetlinkDelLink() (Laine Stump),<br/>
      util: netlink function to delete any network device (Laine Stump),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      Rename DomainGetIOThreadsInfo to DomainGetIOThreadInfo (Ján Tomko),<br/>
      Rename qemuMonitorIOThreadsInfo* to qemuMonitorIOThreadInfo* (Ján Tomko),<br/>
      Rename virDomainIOThreadsInfoFree to virDomainIOThreadInfoFree (Ján Tomko),<br/>
      virsh: rename iothreadsinfo to iothreadinfo (Ján Tomko),<br/>
      qemu: Give hint about -noTSX CPU model (Jiri Denemark),<br/>
      cpu: Add {Haswell,Broadwell}-noTSX CPU models (Jiri Denemark),<br/>
      tests: qemuxml2xml: Test status XML formatting and parsing (Peter Krempa),<br/>
      util: buffer: Add support for adding text blocks with indentation (Peter Krempa),<br/>
      daemon: Clear fake domain def object that is used to check ACL prior to use (Peter Krempa),<br/>
      tests: qemuxml2xml: Refactor the qemuxml2xml test (Peter Krempa),<br/>
      qemu: Report better error when memory device source has wrong NUMA node (Luyao Huang),<br/>
      util: NUMA: Change error code in virNumaNodesetIsAvailable() (Peter Krempa),<br/>
      conf: Add missing apostrophe to error message (Luyao Huang),<br/>
      Makefile: fix typo (Pavel Hrdina),<br/>
      qemu: Add timing to domain jobs (Jiri Denemark),<br/>
      qemu: Track the API which started the current job (Jiri Denemark),<br/>
      Set thread job for every RPC call (Jiri Denemark),<br/>
      virThreadPool: Set thread worker name (Jiri Denemark),<br/>
      virThread: Set thread job (Jiri Denemark),<br/>
      Force usage of virThreadCreate (Jiri Denemark),<br/>
      Add support for tracking thread jobs (Jiri Denemark),<br/>
      POTFILES.in: Sort (Jiri Denemark),<br/>
      libxl: remove per-domain libxl_ctx (Jim Fehlig),<br/>
      libxl: make libxlDomainFreeMem static (Jim Fehlig),<br/>
      libxl: remove unnecessary libxlDomainEventsRegister (Jim Fehlig),<br/>
      libxl: use global libxl_ctx in event handler (Jim Fehlig),<br/>
      libxl: move event registration to driver initialization (Jim Fehlig),<br/>
      libxl: Move setup of child processing code to driver initialization (Jim Fehlig),<br/>
      libxl: use driver-wide ctx in fd and timer event handling (Jim Fehlig),<br/>
      qemu: cleanup setvcpus (Pavel Hrdina),<br/>
      qemu: move virDomainLiveConfigHelperMethod right after BeginJob (Pavel Hrdina),<br/>
      qemu: change accidental VIR_WARNING back to VIR_DEBUG (Laine Stump),<br/>
      qemucaps2xmltest: fix the test to correspond to new domain formatting (Pavel Hrdina),<br/>
      conf: fix parsing of NUMA settings in VM status XML (Luyao Huang),<br/>
      qemu: Implement memory device hotunplug (Peter Krempa),<br/>
      qemu: conf: Add support for memory device cold(un)plug (Peter Krempa),<br/>
      qemu: add support for memory devices (Peter Krempa),<br/>
      qemu: migration: Forbid migration with memory modules lacking info (Peter Krempa),<br/>
      qemu: memdev: Add infrastructure to load memory device information (Peter Krempa),<br/>
      conf: Add interface to parse and format memory device information (Peter Krempa),<br/>
      conf: Add device address type for dimm devices (Peter Krempa),<br/>
      qemu: Implement setup of memory hotplug parameters (Peter Krempa),<br/>
      conf: Add support for parsing and formatting max memory and slot count (Peter Krempa),<br/>
      libxl: Refactor logic in domain post parse callback (Peter Krempa),<br/>
      qemu: Set default SCSI controller model for S390 arch (Boris Fiuczynski),<br/>
      qemu: skip precreation of network disks (Michael Chapman),<br/>
      network_conf: Drop virNetworkObjIsDuplicate (Michal Privoznik),<br/>
      objecteventtest: Check for virNetwork* return values (Michal Privoznik),<br/>
      cgroup: Add accessors for cpuset.memory_migrate (Martin Kletzander),<br/>
      maint: update .mailmap for recent contributions (Eric Blake),<br/>
      libxl: use xenlight pkgconfig file if present (Jim Fehlig),<br/>
      util: more verbose error when failing to create macvtap device (Laine Stump),<br/>
      util: clean up #includes of virnetdevopenvswitch.h (Laine Stump),<br/>
      util: vhost user: support for bootindex (zhang bo),<br/>
      parallels: make E1000 network adapter model default (Maxim Nestratov),<br/>
      parallels: better bridge network interface support (Maxim Nestratov),<br/>
      parallels: introduce and use string constants for network types and names (Maxim Nestratov),<br/>
      maint: Distribute tests/vircgroupdata (Jiri Denemark),<br/>
      Use PAUSED state for domains that are starting up (Jiri Denemark),<br/>
      tests: Add tests for virCgroupDetectMounts (Jiri Denemark),<br/>
      qemuAgentGetInterfaces: Don't error out on missing HW address (Michal Privoznik),<br/>
      virsh: Adapt to new HW address scenario (Michal Privoznik),<br/>
      RPC: Allow HW address in remote_domain_interface struct to be NULL (Michal Privoznik),<br/>
      network: Add midonet virtual port type support to qemu (Antoni Segura Puimedon),<br/>
      util: functions to support binding/unbinding midonet virtualports (Antoni Segura Puimedon),<br/>
      conf: disk: Simplify checking if source definition was parsed (Peter Krempa),<br/>
      util: storage: Fix check for empty storage device (Peter Krempa),<br/>
      qemu: hotplug: Use checker function to check if disk is empty (Peter Krempa),<br/>
      virsh: domain: Fix the change-media command (Peter Krempa),<br/>
      virsh: domain: Add --print-xml flag for command change-media (Peter Krempa),<br/>
      virsh: domain: Don't use vshPrepareDiskXML for creating XML to detach disk (Peter Krempa),<br/>
      parallels_sdk.c: minor cleanup (Maxim Nestratov),<br/>
      domifaddr: Add virsh support (Nehal J Wani),<br/>
      domifaddr: Implement the API for qemu (Nehal J Wani),<br/>
      domifaddr: Implement the remote protocol (Nehal J Wani),<br/>
      domifaddr: Implement the public APIs (Nehal J Wani),<br/>
      conf: Reorder elements inside memballoon (Martin Kletzander),<br/>
      util: Make sure the comment about virBufferAddBuffer is true (Martin Kletzander),<br/>
      wireshark: fix VPATH build (Pavel Hrdina),<br/>
      qemu_command: Fix some indentation and a typo (Luyao Huang),<br/>
      rpm-build: use pkg-config to detect wireshark presence (Pavel Hrdina),<br/>
      Remove virDomainIOThreadsPinDel (John Ferlan),<br/>
      Replace virDomainVcpuPinDel with virDomainPinDel (John Ferlan),<br/>
      Replace virDomainIOThreadsPinAdd with virDomainPinAdd (John Ferlan),<br/>
      Replace virDomainVcpuPinAdd with virDomainPinAdd (John Ferlan),<br/>
      Convert virDomainVcpuPinFindByVcpu into virDomainPinFindByVcpu (John Ferlan),<br/>
      Convert virDomainVcpuPinIsDuplicate into virDomainPinIsDuplicate (John Ferlan),<br/>
      Convert virDomainVcpuPinDefCopy into virDomainPinDefCopy (John Ferlan),<br/>
      Convert virDomainVcpuPinDefArrayFree to virDomainPinDefArrayFree (John Ferlan),<br/>
      Convert virDomainVcpuPinDefFree to virDomainPinDefFree (John Ferlan),<br/>
      Convert virDomainPinDefPtr-&gt;vcpuid to virDomainPinDefPtr-&gt;id (John Ferlan),<br/>
      Convert virDomainVcpuPinDefPtr to virDomainPinDefPtr (John Ferlan),<br/>
      conf: Make specifying &lt;memory&gt; optional (Peter Krempa),<br/>
      conf: Automatically use NUMA memory size in case NUMA is enabled (Peter Krempa),<br/>
      qemu: command: Add helper to align memory sizes (Peter Krempa),<br/>
      conf: Replace access to def-&gt;mem.max_balloon with accessor functions (Peter Krempa),<br/>
      qemu: process: Export qemuProcessFindDomainDiskByAlias (Peter Krempa),<br/>
      AUTHORS: add myself to commiters list (Erik Skultety),<br/>
      netdev: silence valgrind warning about ioctl use (Eric Blake),<br/>
      conf: add virDomainHasNet (Marek Marczykowski-Górecki),<br/>
      tests: xenconfig: test for multiple USB devices and other HVM options (Marek Marczykowski-Górecki),<br/>
      xenconfig: add support for multiple USB devices syntax (Marek Marczykowski-Górecki),<br/>
      libxl: add tablet/mouse input device support (Marek Marczykowski),<br/>
      bridge_driver: Use more of networkObjFromNetwork (Michal Privoznik),<br/>
      parallels_network: Drop parallelsDriverLock() from everywhere. (Michal Privoznik),<br/>
      test_driver: Drop testDriverLock() from almost everywhere (Michal Privoznik),<br/>
      bridge_driver: Drop networkDriverLock() from almost everywhere (Michal Privoznik),<br/>
      struct _virNetworkDriverState: Annotate items (Michal Privoznik),<br/>
      network_driver: Use accessor for dnsmasqCaps (Michal Privoznik),<br/>
      bridge_driver: Don't access global driver randomly (Michal Privoznik),<br/>
      Introduce virBitmapIsBitSet (Ján Tomko),<br/>
      Clarify the meaning of version in redirdev filters (Ján Tomko),<br/>
      vmx: add e1000e to supported NIC models. (Dawid Zamirski),<br/>
      vbox: use user cache dir when screenshotting. (Dawid Zamirski),<br/>
      parallels: add VIR_ARCH_I686 capability to parallels driver (Maxim Nestratov),<br/>
      virsh: Add iothreadpin command (John Ferlan),<br/>
      qemu: Add support to pin IOThreads to specific CPU (John Ferlan),<br/>
      domain: Introduce virDomainIOThreadsPin{Add|Del} (John Ferlan),<br/>
      remote: Implement the plumbing for virDomainPinIOThread (John Ferlan),<br/>
      virNetworkObjFindBy*: Return an reference to found object (Michal Privoznik),<br/>
      virNetworkObjListPtr: Make APIs self-locking (Michal Privoznik),<br/>
      network_conf: Introduce locked versions of lookup functions (Michal Privoznik),<br/>
      virNetworkObjList: Derive from virObjectLockableClass (Michal Privoznik),<br/>
      parallels_network: Use virNetworkObjEndAPI (Michal Privoznik),<br/>
      test_driver: Use virNetworkObjEndAPI (Michal Privoznik),<br/>
      bridge_driver: Use virNetworkObjEndAPI (Michal Privoznik),<br/>
      network_conf: Introduce virNetworkObjEndAPI (Michal Privoznik),<br/>
      network_conf: Make virNetworkObj actually virObject (Michal Privoznik),<br/>
      virNetworkObjListPtr: Turn list into a hash table (Michal Privoznik),<br/>
      qemu: monitor: Kill qemuMonitorGetBlockStats(Info,ParamsNumber) (Peter Krempa),<br/>
      test: qemu: json: Avoid using the now obsolete functions (Peter Krempa),<br/>
      qemu: blockstats: Refactor qemuDomainBlockStatsFlags (Peter Krempa),<br/>
      qemu: blockstats: Add support for totalled block statistics (Peter Krempa),<br/>
      qemu: Split out working code qemuDomainBlockStats (Peter Krempa),<br/>
      qemu: monitor: Count block stats fields in qemuMonitorGetAllBlockStatsInfo (Peter Krempa),<br/>
      qemu: monitor: Convert common code to a macro (Peter Krempa),<br/>
      qemu: monitor: Implement HMP version for listing all block device stats (Peter Krempa),<br/>
      test: qemu: Fix qemu monitor test utils to allow testing HMP (Peter Krempa),<br/>
      qemu: blockstats: Switch to caller allocated hash table (Peter Krempa),<br/>
      qemu: monitor: Drop parsing of 'errs' from block info (Peter Krempa),<br/>
      qemu: Use macro to set block stats typed parameters (Peter Krempa),<br/>
      RNG: Allow multiple parameters to be passed to an interface filter (Michal Privoznik),<br/>
      parallels: cpumask support (Maxim Nestratov),<br/>
      qemu: Remove unnecessary virReportError on networkGetNetworkAddress return (Luyao Huang),<br/>
      Reverse the logic in virbitmaptest (Ján Tomko),<br/>
      Use virBitmapNextClearBit in networkNextClassID (Ján Tomko),<br/>
      network_conf: Turn struct _virNetworkObjList private (Michal Privoznik),<br/>
      network_conf: Turn virNetworkObjList into virObject (Michal Privoznik),<br/>
      parallels_network: Adapt to new virNetworkObjList accessors (Michal Privoznik),<br/>
      test_driver: Adapt to new virNetworkObjList accessors (Michal Privoznik),<br/>
      bridge_driver: Adapt to new virNetworkObjList accessors (Michal Privoznik),<br/>
      network_conf: Introduce virNetworkObjListPrune (Michal Privoznik),<br/>
      network_conf: Introduce virNetworkObjListNumOfNetworks (Michal Privoznik),<br/>
      network_conf: Introduce virNetworkObjListGetNames (Michal Privoznik),<br/>
      network_conf: Introduce virNetworkObjListForEach (Michal Privoznik),<br/>
      locking: Fix flags in virLockManagerLockDaemonNew (Jiri Denemark),<br/>
      tests: fix qemuxml2argvtest to be arch independent (Pavel Hrdina),<br/>
      qemu: Change qemuDomainGetEmulatorPinInfo bitmap manipulation (John Ferlan),<br/>
      qemu: Change qemuDomainGetVcpuPinInfo bitmap manipulation (John Ferlan),<br/>
      qemu: Change/Fix IOThread CPU affinity bitmap manipulation (John Ferlan),<br/>
      Remove ReadOnly check for GetIOThreadsInfo (John Ferlan),<br/>
      tests: Add test for os interleaving (Martin Kletzander),<br/>
      tests: Add test for virtio-mmio address type (Martin Kletzander),<br/>
      domain_conf: Format &lt;pvpanic/&gt; without address correctly (Michal Privoznik),<br/>
      Refresh translations from Zanata (Daniel P. Berrange),<br/>
      virsh: Add 'iothreadsinfo' command (John Ferlan),<br/>
      qemu: Implement the qemu driver fetch for IOThreads (John Ferlan),<br/>
      remote: Implement the remote plumbing for virDomainGetIOThreadsInfo (John Ferlan),<br/>
      memtune: change the way how we store unlimited value (Pavel Hrdina),<br/>
      virutil: introduce helper functions for memory limits (Pavel Hrdina),<br/>
      virsh: fix memtune to also accept 0 as valid value (Pavel Hrdina),<br/>
      qemu: Pass file descriptor when using TPM passthrough (Stefan Berger),<br/>
      qemu: Move TPM command line build code into own function (Stefan Berger),<br/>
      utils: Implement virCommandPassFDGetFDIndex (Stefan Berger),<br/>
      libxl: remove unneeded cleanup_unlock label (Jim Fehlig),<br/>
      libxl: use libxl_ctx passed to libxlConsoleCallback (Jim Fehlig),<br/>
      libxl: remove redundant calls to libxl_evdisable_domain_death (Jim Fehlig),<br/>
      spec: Enable RBD storage driver in RHEL-7 (Peter Krempa),<br/>
      storage: tweak condition to properly test lseek (Erik Skultety),<br/>
      virsh: tweak domif-getlink link state reporting message (Erik Skultety),<br/>
      qemu: Allow inactive domains in qemuDomainGetControlInfo() (Peter Krempa),<br/>
      qemu: Properly report error state in qemuDomainGetControlInfo() (Peter Krempa),<br/>
      conf: s/virNetworkFindByName/virNetworkObjFindByName/ (Michal Privoznik),<br/>
      conf: s/virNetworkFindByUUID/virNetworkObjFindByUUID/ (Michal Privoznik),<br/>
      bridge_driver: s/virNetworkObjList/virNetworkObjListPtr/ (Michal Privoznik),<br/>
      parallels: s/virNetworkObjList/virNetworkObjListPtr/ (Michal Privoznik),<br/>
      test_driver: s/virNetworkObjList/virNetworkObjListPtr/ (Michal Privoznik),<br/>
      virNetworkObjListExport: Pass virNetworkObjListPtr (Michal Privoznik),<br/>
      virNetworkObjListFree: Accept NULL (Michal Privoznik),<br/>
      virNetworkObjIsDuplicate: s/@doms/@nets/ (Michal Privoznik),<br/>
      networkGetNetworkAddress: Drop empty 'error' label (Michal Privoznik),<br/>
      bridge_driver: Don't check network active unlocked (Michal Privoznik),<br/>
      networkLookupByUUID: Improve error message (Michal Privoznik),<br/>
      qemu: remove duplicated code for allocating spice ports (Pavel Hrdina),<br/>
      tests : Add test for 'ppc64le' architecture. (Prerna Saxena),<br/>
      RNG: Add 'ppc64le' arch and newer pseries-2.* machine types (Prerna Saxena),<br/>
      conf: De-duplicate scheduling policy enums (Martin Kletzander),<br/>
      virsh.pod: Update find-storage-pool-sources[-as] man page (John Ferlan),<br/>
      iscsi: Adjust error message for findStorageSources backend (John Ferlan),<br/>
      virsh: Adjust domblklist to understand disk volume syntax (John Ferlan),<br/>
      conf: numa: Add helper to count total memory size configured in NUMA (Peter Krempa),<br/>
      qemu: Forbid setting maximum memory size with the API with NUMA enabled (Peter Krempa),<br/>
      Pass virDomainObjPtr to qemuDomainAgentAvailable (Ján Tomko),<br/>
      Check for qemu guest agent availability after getting the job (Ján Tomko),<br/>
      Allow creating volumes with a backing store but no capacity (Ján Tomko),<br/>
      Allow omitting volume capacity when backing store is specified (Ján Tomko),<br/>
      Probe for capacity in virStorageBackendUpdateVolTargetInfo (Ján Tomko),<br/>
      Allow cloning volumes with no capacity specified (Ján Tomko),<br/>
      Allow parsing volumes without specifying the capacity (Ján Tomko),<br/>
      Parse backingStore before capacity in volume XML (Ján Tomko),<br/>
      Add flags argument to virStorageVolDefParse* (Ján Tomko),<br/>
      Add --migratable support to virsh cpu-baseline (Ján Tomko),<br/>
      Trivially implement VIR_CONNECT_BASELINE_CPU_MIGRATABLE for non-x86 cpus (Ján Tomko),<br/>
      Implement VIR_CONNECT_BASELINE_CPU_MIGRATABLE in the x86 cpu driver (Ján Tomko),<br/>
      Add VIR_CONNECT_BASELINE_CPU_MIGRATABLE flag (Ján Tomko),<br/>
      Use virBufferTrim when generating boot options (Ján Tomko),<br/>
      Make -boot arg generation more readable (Ján Tomko),<br/>
      Remove code handling the QEMU_CAPS_DOMID capability (Ján Tomko),<br/>
      Remove bootloader option from QEMU (Ján Tomko)<br/>
      </li>
    </ul>

    <h3>1.2.13: Mar 02 2015</h3>
    <ul>
      <li>Features:<br/>
      a lot of NUMA updates and improvments (Peter Krempa)<br/>
      </li>

      <li>Documentation:<br/>
      Add mist.io as libvirt-based application (Michal Privoznik),<br/>
      Fix typos in messages (Yuri Chornoivan),<br/>
      Clarify behavior or virDomainDetachDevice (Ján Tomko),<br/>
      virsh: Add missing parenthesis into man page (Martin Kletzander),<br/>
      man: moved virsh command cpu-models (Daniel Hansel),<br/>
      clarify nat range behavior (Ján Tomko),<br/>
      add page about virtlockd setup (Daniel P. Berrange),<br/>
      split out sanlock setup docs (Daniel P. Berrange),<br/>
      Fix version reference in vcpu/iothread scheduling (Martin Kletzander),<br/>
      S390: Documentation for ccw address type (Stefan Zimmermann),<br/>
      conf: fix a minor typo (Erik Skultety),<br/>
      virsh: man: Document behavior of some blkdeviotune's flags when querying (Peter Krempa)<br/>
      </li>

      <li>Portability:<br/>
      virprocess: fix MinGW build and RHEL-5 build (Pavel Hrdina),<br/>
      virutil: fix MinGW build (Pavel Hrdina),<br/>
      Make tests independant of system page size (Daniel P. Berrange)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Really fix XML formatting flags in SaveImageUpdateDef (Ján Tomko),<br/>
      Ignore listen attribute of &lt;graphics&gt; for type network listens (Ján Tomko),<br/>
      util: storage: Fix error type in virStorageSourceParseBackingURI (Peter Krempa),<br/>
      util: storagefile: Don't crash on gluster URIs without path (Peter Krempa),<br/>
      conf: error out on invalid host id (Luyao Huang),<br/>
      qemu: fix ifindex array reported to systemd (Laine Stump),<br/>
      util: check for null ifname inside virNetDevBandwidthSet() (Laine Stump),<br/>
      network: only clear bandwidth if it has been set (Laine Stump),<br/>
      Fix error messages in virStorageFileGetMetadataFromFD (Ján Tomko),<br/>
      Assign default SCSI controller model before checking attribute validity (Ján Tomko),<br/>
      qemu: Use correct flags for ABI stability check in SaveImageUpdateDef (Michal Privoznik),<br/>
      qemu: fix memory leak while starting a guest (Pavel Hrdina),<br/>
      network_conf: Forbid commas in DNS TXT (Michal Privoznik),<br/>
      qemuMigrationDriveMirror: Listen to events (Michal Privoznik),<br/>
      qemu: Exit job on error path of qemuDomainSetVcpusFlags() (Peter Krempa),<br/>
      daemon: Fix segfault by reloading daemon right after start (Pavel Hrdina),<br/>
      qemu_cgroup: initialize mem_mask to NULL (Pavel Hrdina),<br/>
      PowerPC : Forbid NULL CPU model with 'host-model' mode. (Prerna Saxena),<br/>
      qemu: fix vm deadlock when try to use numatune in session mode (Luyao Huang),<br/>
      virsh: fix IP address in vncdisplay for listen type='network' (Luyao Huang),<br/>
      libxl: Resolve Coverity CHECKED_RETURN (John Ferlan),<br/>
      security: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      lxc: Fix container cleanup for LXCProcessStart (Luyao Huang),<br/>
      lxc: Move console checks in LXCProcessStart (Luyao Huang),<br/>
      security: Refactor virSecurityManagerGenLabel (Erik Skultety),<br/>
      security: introduce virSecurityManagerCheckAllLabel function (Erik Skultety),<br/>
      Fix a syntax error in the description text of libvirtd.conf (Zhang Bo),<br/>
      Allow shrinking of file based volumes (Daniel P. Berrange),<br/>
      qemu: do upfront check for vcpupids being null when querying pinning (Daniel P. Berrange),<br/>
      qemu: fix setting of VM CPU affinity with TCG (Daniel P. Berrange),<br/>
      libxl: disable VNC and SDL until explicitly enabled (Marek Marczykowski-Górecki),<br/>
      libxl: pass ipaddr to libxl toolstack (Marek Marczykowski-Górecki),<br/>
      domain: avoid potential memory leak in virDomainGraphicsListenSet*() (Laine Stump),<br/>
      domain: backfill listen address to parent &lt;graphics&gt; listen attribute (Laine Stump),<br/>
      virsh: fix IP address in domdisplay for listen type='network' (Luyao Huang),<br/>
      bhyvexml2argvmock: change int to size_t for tapfdSize (Pavel Hrdina),<br/>
      qemu: fix crash when migrateuri has no scheme (Luyao Huang),<br/>
      conf: Fix libvirtd crash and memory leak caused by virDomainVcpuPinDel() (Zhang Bo),<br/>
      conf: forbid seclabel duplicates for domain devices (Erik Skultety),<br/>
      Fix qemu job handling in SetSchedulerParameters (Ján Tomko),<br/>
      conf: disallow invalid values for video attributes (Martin Kletzander),<br/>
      Clear dynamic seclabels on LXCProcessStart failure (Cédric Bosdonnat),<br/>
      network: don't allow multiple portgroups with the same name in a network (Laine Stump),<br/>
      Error out when custom tap device path makes no sense (Ján Tomko),<br/>
      Only parse custom vhost path for virtio interfaces (Ján Tomko),<br/>
      Trivially support DomainHasManagedSaveImage (Ján Tomko),<br/>
      libxl: update dom-&gt;id in libxlDomainCreateWithFlags (Marek Marczykowski-Górecki),<br/>
      qemu: Properly report error on uuid mismatch in the migration cookie (Luyao Huang),<br/>
      lxc: fix double close handshakefds[1] (Luyao Huang),<br/>
      util: storage: Fix parsing of nbd:// URI without path (Peter Krempa),<br/>
      conf: Properly report error of unsupported input bus type (Luyao Huang),<br/>
      conf: Properly report error when an unsupported chr device name is passed (Luyao Huang),<br/>
      virnetdev: fix some issues found by coverity and mingw builds (Pavel Hrdina),<br/>
      storage: Need to clear pool prior to refreshPool during Autostart (John Ferlan),<br/>
      qemu: command: Don't combine old and modern NUMA node creation (Peter Krempa),<br/>
      xend: Don't crash in virDomainXMLDevID (Michal Privoznik),<br/>
      conf: Don't mangle vcpu placement randomly (Michal Privoznik),<br/>
      qemu: Don't unconditionally delete file in qemuOpenFileAs (John Ferlan),<br/>
      virfile: Need to check for ENOTCONN from recvfd failure (John Ferlan),<br/>
      Remove flag checking in MacVLanCreate helper stub (Ján Tomko),<br/>
      storage: Check the partition name against provided name (John Ferlan),<br/>
      storage: Fix check for partition type for disk backing volumes (John Ferlan),<br/>
      qemu: fix cannot set graphic passwd via qemuDomainSaveImageDefineXML (Luyao Huang),<br/>
      hotplug: only add a chardev to vmdef after monitor call (Ján Tomko),<br/>
      systemd: don't report an error if the guest is already terminated (Daniel P. Berrange)<br/>
      </li>

      <li>Improvements:<br/>
      conf: error out on missing dhcp host attributes (Ján Tomko),<br/>
      schema: Allow interleaving the /domain/os/type element (Peter Krempa),<br/>
      schema: Add virtio-mmio address type into RNG (Martin Kletzander),<br/>
      cpu: Format &lt;cpu/&gt; properly (Michal Privoznik),<br/>
      virCPUDefFormatBufFull: Use our general error handling pattern (Michal Privoznik),<br/>
      util: Introduce virBufferAddBuffer (Michal Privoznik),<br/>
      Rework s390 architecture checking (Stefan Zimmermann),<br/>
      Prevent default creation of usb controller on s390 and s390x (Stefan Zimmermann),<br/>
      po: Add config file for zanata (Daniel P. Berrange),<br/>
      libvirt-guests: Allow time sync on guests resume (Michal Privoznik),<br/>
      qemu: Fix AAVMF/OVMF #define names (Cole Robinson),<br/>
      libxl: support backend domain setting for disk and net devices (Marek Marczykowski),<br/>
      conf: support backend domain name in disk and network devices (Marek Marczykowski),<br/>
      network: allow &lt;pf&gt; together with &lt;interface&gt;lt;address&gt; in network status (Laine Stump),<br/>
      qemu: caps: Add capability bit for the "pc-dimm" device (Peter Krempa),<br/>
      conf: Hoist validation of memory size into the post parse callback (Peter Krempa),<br/>
      conf: numa: Check ABI stability of NUMA configuration (Peter Krempa),<br/>
      conf: ABI: Hugepage backing definition is not guest ABI (Peter Krempa),<br/>
      conf: Move all NUMA configuration to virDomainNuma (Peter Krempa),<br/>
      conf: numa: Add setter/getter for NUMA node memory size (Peter Krempa),<br/>
      conf: numa: Add accessor to NUMA node's memory access mode (Peter Krempa),<br/>
      conf: numa: Add accessor for the NUMA node cpu mask (Peter Krempa),<br/>
      conf: numa: Add helper to get guest NUMA node count and refactor users (Peter Krempa),<br/>
      qemu: command: Unify retrieval of NUMA cell count in qemuBuildNumaArgStr (Peter Krempa),<br/>
      conf: numa: Don't pass double pointer to virDomainNumatuneParseXML (Peter Krempa),<br/>
      numa: conf: Tweak parameters of virDomainNumatuneSet (Peter Krempa),<br/>
      conf: numa: Always allocate the NUMA config (Peter Krempa),<br/>
      conf: Allocate domain definition with the new helper (Peter Krempa),<br/>
      conf: Separate helper for creating domain objects (Peter Krempa),<br/>
      conf: numa: Format &lt;numatune&gt; XML only if necessary (Peter Krempa),<br/>
      conf: numa: Refactor logic in virDomainNumatuneParseXML (Peter Krempa),<br/>
      conf: numa: Reformat virDomainNumatuneParseXML (Peter Krempa),<br/>
      conf: numa: Improve error message in case a numa node doesn't have cpus (Peter Krempa),<br/>
      conf: numa: Recalculate rather than remember total NUMA cpu count (Peter Krempa),<br/>
      conf: Move enum virMemAccess to the NUMA code and rename it (Peter Krempa),<br/>
      conf: numa: Rename virDomainNumatune to virDomainNuma (Peter Krempa),<br/>
      conf: Move NUMA cell formatter to numa_conf (Peter Krempa),<br/>
      conf: numa: Don't duplicate NUMA cell cpumask (Peter Krempa),<br/>
      conf: Refactor virDomainNumaDefCPUParseXML (Peter Krempa),<br/>
      conf: Move NUMA cell parsing code from cpu conf to numa conf (Peter Krempa),<br/>
      conf: Move numatune_conf to numa_conf (Peter Krempa),<br/>
      virsh: fix vcpupin info (Pavel Hrdina),<br/>
      virQEMUCapsCacheLookupCopy: Filter qemuCaps based on machineType (Michal Privoznik),<br/>
      virQEMUCapsCacheLookupCopy: Pass machine type (Michal Privoznik),<br/>
      virsh-edit: Make force editing usable (Martin Kletzander),<br/>
      parallels: Set the first HDD from XML as bootable (Mikhail Feoktistov),<br/>
      parallels: Use IS_CT() macro instead of STREQ("exe") (Mikhail Feoktistov),<br/>
      parallels: code aligment (Mikhail Feoktistov),<br/>
      Search for schemas and cpu_map.xml in source tree (Jiri Denemark),<br/>
      qemuProcessHandleBlockJob: Take status into account (Michal Privoznik),<br/>
      qemuProcessHandleBlockJob: Set disk-&gt;mirrorState more often (Michal Privoznik),<br/>
      PowerPC : Make 'qemu-system-ppc64' the default emulator on ppc64[le]. (Prerna Saxena),<br/>
      qemuBuildMemoryBackendStr: Report backend requirement more appropriately (Michal Privoznik),<br/>
      qemuxml2argvtest: Fake response from numad (Michal Privoznik),<br/>
      numatune_conf: Expose virDomainNumatuneNodeSpecified (Michal Privoznik),<br/>
      lxc: Modify/add some debug messages (John Ferlan),<br/>
      Wire up mrg_rxbuf option for qemu (Ján Tomko),<br/>
      Add mrg_rxbuf option to virtio interfaces (Ján Tomko),<br/>
      virsh attach-interface: Allow macvtap hotplug (Michal Privoznik),<br/>
      virsh attach-interface: Use virDomainNetType{From,To}String() (Michal Privoznik),<br/>
      virsh attach-interface: Use enum instead of arbitrary integers (Michal Privoznik),<br/>
      libvirt_private.syms: Expose virDomainNetTypeFromString (Michal Privoznik),<br/>
      qemu: Add support for setting vCPU and I/O thread scheduler setting (Martin Kletzander),<br/>
      docs, schema, conf: Add support for setting scheduler parameters of guest threads (Martin Kletzander),<br/>
      util: Add virProcessSetScheduler() function for scheduler settings (Martin Kletzander),<br/>
      domain: include portgroup in interface status xml (Laine Stump),<br/>
      qemu: qemuOpenFileAs - set flag VIR_FILE_OPEN_FORCE_MODE (John Ferlan),<br/>
      virfile: Adjust error path for virFileOpenForked (John Ferlan),<br/>
      schema: allow multiple seclabel for devices in domaincommon.rng (Erik Skultety),<br/>
      qemu: Implement random number generator hotunplug (Luyao Huang),<br/>
      qemu: Implement random number generator hotplug (Luyao Huang),<br/>
      qemu: Implement random number generator cold (un)plug (Peter Krempa),<br/>
      conf: Add helpers to insert/remove/find RNG devices in domain def (Luyao Huang),<br/>
      audit: export virDomainAuditRNG (Luyao Huang),<br/>
      qemu: command: Refactor creation of RNG device commandline (Peter Krempa),<br/>
      qemu: command: Break some very long lines in qemuBuildRNGDevStr() (Peter Krempa),<br/>
      qemu: command: Shuffle around formatting of alias for RNG device backend (Peter Krempa),<br/>
      qemu: command: Make RNG backend device IDs unique (Luyao Huang),<br/>
      qemu: refactor qemuBuildRNGDeviceArgs to allow reuse in RNG hotplug (Luyao Huang),<br/>
      qemu: Add helper to assign RNG device aliases (Luyao Huang),<br/>
      conf: Introduce helper to find duplicate device address (Peter Krempa),<br/>
      S390: ccw support for virsh attach-disk address parameter (Stefan Zimmermann),<br/>
      maint: improve usage of autogen's --no-git (Stefan Zimmermann),<br/>
      qemu: include libvirt &amp; QEMU versions in QEMU log files (Daniel P. Berrange),<br/>
      nodedev: check/add for scsi_host caps for NumOfCaps and ListCaps (John Ferlan),<br/>
      nodedev: check/add for scsi_host caps for ListDevices (Shivaprasad G Bhat),<br/>
      cpu: add Freescale ppc64 CPU models (Olivia Yin),<br/>
      tests: virstoragetest: Switch backing chain test to use automatic numbering (Peter Krempa),<br/>
      virsh-volume: add support for --reflink (Chen Hanxiao),<br/>
      util: make virNetDev(Get|Set)IFFlags() static (Laine Stump),<br/>
      qemu: command: Refactor NUMA backend object formatting to use JSON objs (Peter Krempa),<br/>
      qemu: command: Switch to bytes when formatting size for memory backends (Peter Krempa),<br/>
      qemu: command: Unify values for boolean values when formating memory backends (Peter Krempa),<br/>
      qemu: command: Shuffle around formating of alias for memory backend objs (Peter Krempa),<br/>
      qemu: Extract code to setup memory backing objects (Peter Krempa),<br/>
      qemu: command: Add helper to format -object strings from JSON representation (Peter Krempa),<br/>
      util: json: add helper to iterate JSON object key=value pairs (Peter Krempa),<br/>
      util: json: Add functions to convert JSON arrays from/to virBitmaps (Peter Krempa),<br/>
      util: bitmap: Add option to allocate bitmap without reporting error (Peter Krempa),<br/>
      util: json: make value object creator universal by supporting adding (Peter Krempa),<br/>
      test: utils: Add helpers for automatic numbering of test cases (Peter Krempa),<br/>
      conf: numatune: Extract code for requesting memory nodeset from formatting (Peter Krempa),<br/>
      qemu: change macvtap device options in response to NIC_RX_FILTER_CHANGED (Tony Krowiak),<br/>
      util: Functions for getting/setting device options (Tony Krowiak),<br/>
      qemu: Adjust EndAsyncJob for qemuDomainSaveInternal error path (John Ferlan),<br/>
      schemas: Allow all generic elements and attributes for all interfaces (Michal Privoznik),<br/>
      qemu: Add AAVMF to the list of known UEFIs (Michal Privoznik),<br/>
      qemu: Allow UEFI paths to be specified at compile time (Michal Privoznik),<br/>
      Fix syntax-check (Ján Tomko),<br/>
      util: bitmap: Tolerate NULL bitmaps in virBitmapEqual (Peter Krempa),<br/>
      storage: When delete extended partition, need to refresh pool (John Ferlan),<br/>
      storage: Adjust how to refresh extended partition disk data (John Ferlan),<br/>
      storage: Attempt error recovery in virStorageBackendDiskCreateVol (John Ferlan),<br/>
      storage: Move virStorageBackendDiskDeleteVol (John Ferlan),<br/>
      libvirt.spec: remove vbox storage and network .so files (Pavel Hrdina),<br/>
      Split qemuDomainChrInsert into two parts (Ján Tomko),<br/>
      lxc: report veth device indexes to systemd (Daniel P. Berrange),<br/>
      lxc: more logging during startup paths (Daniel P. Berrange),<br/>
      lxc: delay setup of cgroup until we have the init pid (Daniel P. Berrange),<br/>
      lxc: only write XML once for lxc controller (Daniel P. Berrange),<br/>
      lxc: re-arrange startup synchronization sequence with controller (Daniel P. Berrange),<br/>
      lxc: don't build pidfile string multiple times (Daniel P. Berrange),<br/>
      qemu: report TAP device indexes to systemd (Daniel P. Berrange),<br/>
      Fix shadowed variable warning (Ján Tomko),<br/>
      storage: add a flag to clone files on btrfs (Chen Hanxiao),<br/>
      storage: introduce btrfsCloneFile() for COW copy (Chen Hanxiao),<br/>
      Removing probing of secondary drivers (Daniel P. Berrange),<br/>
      don't disable state driver when libvirtd is not built (Daniel P. Berrange),<br/>
      Remove all secondary driver private data fields (Daniel P. Berrange),<br/>
      Remove use of interfacePrivateData from udev driver (Daniel P. Berrange),<br/>
      Remove use of nodeDevicePrivateData from nodeDev driver (Daniel P. Berrange),<br/>
      Remove use of storagePrivateData/networkPrivateData from vbox (Daniel P. Berrange),<br/>
      Remove use of nwfilterPrivateData from nwfilter driver (Daniel P. Berrange),<br/>
      Remove use of secretPrivateData from secret driver (Daniel P. Berrange),<br/>
      qemu: Fix job handling in qemuDomainSetMetadata (Peter Krempa),<br/>
      qemu: Fix job type in qemuDomainGetBlockIoTune (Peter Krempa),<br/>
      qemu: Fix job handling in qemuDomainSetSchedulerParametersFlags (Peter Krempa),<br/>
      qemu: Fix job handling in qemuDomainSetMemoryParameters (Peter Krempa),<br/>
      qemu: Fix job handling in qemuDomainSetAutostart (Peter Krempa),<br/>
      qemu: Fix job handling in qemuDomainPinEmulator (Peter Krempa),<br/>
      qemu: Fix job handling in qemuDomainPinVcpuFlags (Peter Krempa)<br/>
      </li>
    </ul>

    <h3>1.2.12: Jan 27 2015</h3>
    <ul>
      <li>Security:<br/>
      CVE-2015-0236: qemu: Check ACLs when dumping security info from snapshots (Peter Krempa),<br/>
      CVE-2015-0236: qemu: Check ACLs when dumping security info from save image (Peter Krempa)<br/>
      </li>

      <li>Documentation:<br/>
      Fix docs about python bindings package (Martin Kletzander),<br/>
      Document some -boot option limitations on UEFI (Michal Privoznik),<br/>
      virsh.pod: Update description (John Ferlan),<br/>
      Fix typo s/interpetation/interpretation/ (Claudio Bley),<br/>
      split typedef and struct definition for apibuild.py (Claudio Bley)<br/>
      </li>

      <li>Portability:<br/>
      Fix build with older gcc (Ján Tomko),<br/>
      Fix virCgroupNewMachine prototype on non-Linux (Ján Tomko),<br/>
      Conditionalize use of -Wno-suggest-attribute=format pragma (Daniel P. Berrange),<br/>
      virnetlink: fix build on non-Linux (Eric Blake),<br/>
      util: Fix fallocate stubs for mingw build (Martin Kletzander),<br/>
      avoid using deprecated udev logging functions (Daniel P. Berrange)<br/>
      </li>

      <li>Bug Fixes:<br/>
      Fix a memory leak in virCgroupGetPercpuStats (Ján Tomko),<br/>
      Use correct location for qcow1 encryption header (Ján Tomko),<br/>
      systemd: fix build without dbus (Daniel P. Berrange),<br/>
      Fix apparmor issues for tck (Mike Latimer),<br/>
      Fix apparmor issues for Xen (Mike Latimer),<br/>
      esx_vi: fix possible segfault (Pavel Hrdina),<br/>
      xenapi_driver: fix copy-paste typo (Pavel Hrdina),<br/>
      Fix virCgroupGetPercpuStats with non-continuous present CPUs (Ján Tomko),<br/>
      qemu: output error when try to hotplug unsupported console type (Luyao Huang),<br/>
      qemu: format server interface without a listen address (Ján Tomko),<br/>
      tests: fix xlconfigtest build failure (Jim Fehlig),<br/>
      qemu_conf: check for duplicate security drivers (Ján Tomko),<br/>
      Always check return value of qemuDomainObjExitMonitor (Ján Tomko),<br/>
      Fix vmdef usage after domain crash in monitor on device attach (Ján Tomko),<br/>
      Fix vmdef usage after domain crash in monitor on device detach (Ján Tomko),<br/>
      libxl: Set path to console on domain startup. (Anthony PERARD),<br/>
      Coverity fix: properly check for 0 ipv6 address. (Cédric Bosdonnat),<br/>
      network: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
      qemu: Tweak auto adding PCI bridge controller when extending default PCI bus (Erik Skultety),<br/>
      domain_conf: Check errors from virSocketAddrFormat (John Ferlan),<br/>
      domain_conf: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      Fix ipv6 regex in RNG schemas to match '::' (Cédric Bosdonnat),<br/>
      virNetworkDefUpdateIPDHCPHost: Don't crash when updating network (Michal Privoznik),<br/>
      qemu: free priv-&gt;origname when qemuMigrationPrepareAny fails (Luyao Huang),<br/>
      Fix vmdef usage while in monitor in qemu process (Ján Tomko),<br/>
      Fix vmdef usage while in monitor in BlockStat* APIs (Ján Tomko),<br/>
      Fix vmdef usage while in monitor in qemuDomainHotplugVcpus (Ján Tomko),<br/>
      qemu_driver: fix setting vcpus for offline domain (Pavel Hrdina),<br/>
      qemu: snapshot: inactive external snapshot can't work after libvirtd restart (Shanzhi Yu),<br/>
      qemu: forbid second blockcommit during active commit (Eric Blake),<br/>
      parallels: don't override error message when XML parsing fails (Daniel P. Berrange),<br/>
      Don't use VIR_DOMAIN_XML_SECURE when parsing XML (Daniel P. Berrange),<br/>
      conf: fix crash when hotplug a channel chr device with no target (Luyao Huang),<br/>
      qemuxml2argvtest: Fix test after change of qxl vgamem_mb default (Michal Privoznik),<br/>
      cpu: Bugfix for s390 CPU driver to return a host CPU model (Daniel Hansel),<br/>
      virconf: Resolve a possible memory leak in virConfSetValue (John Ferlan),<br/>
      openvz: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
      lxc: Don't crash on NULL ifname_guest_actual (Guido Günther),<br/>
      conf: Correctly format controller's driver (Luyao Huang),<br/>
      vmx: Fix a VMX parsing problem (Geoff Hickey),<br/>
      qemu: Fix system pages handling in &lt;memoryBacking/&gt; (Michal Privoznik),<br/>
      qemu: Don't unref domain after exit from nested async job (Peter Krempa),<br/>
      conf: Don't format actual network definition in migratable XML (Luyao Huang),<br/>
      qemu: Restore old bandwidth rules when setting new fails (Luyao Huang),<br/>
      Fix error when starting a container after an error (Cédric Bosdonnat),<br/>
      qemu: Fix coverity issues after refcount refactoring (Martin Kletzander),<br/>
      util: Fix possible NULL dereference (Martin Kletzander),<br/>
      disable vCPU pinning with TCG mode (Daniel P. Berrange),<br/>
      Don't setup fake CPU pids for old QEMU (Daniel P. Berrange),<br/>
      Fix hotplugging of block device-backed usb disks (Ján Tomko),<br/>
      Buffer size too small when reading sysinfo (Boris Fiuczynski),<br/>
      qemu: fix memory leak in blockinfo (Eric Blake),<br/>
      conf: fix cannot start a guest have a shareable network iscsi hostdev (Luyao Huang),<br/>
      qemu: fix bugs in blockstats (Eric Blake),<br/>
      qemu: Free saved error in qemuDomainSetVcpusFlags (Martin Kletzander),<br/>
      qemu: Add missing goto error in qemuRestoreCgroupState (Martin Kletzander),<br/>
      conf: Fix invalid condition when parsing storage owner (Martin Kletzander),<br/>
      qemu: Fix hotplugging cpus with strict memory pinning (Martin Kletzander),<br/>
      parallels: fix usage of disk-&gt;info.addr.drive structure (Dmitry Guryanov),<br/>
      qemu: Auto generate a controller when attach hostdev and chr device (Luyao Huang),<br/>
      xenconfig: fix boot device parsing (Wei Liu),<br/>
      conf: fix virDomainLeaseIndex logic (Luyao Huang),<br/>
      conf: Fix libvirtd crash matching hostdev XML (Luyao Huang),<br/>
      fix typo in sanlock driver s/VIR_CONF_UONG/VIR_CONF_ULONG/ (Daniel P. Berrange),<br/>
      qemu: avoid rare race when undefining domain (Martin Kletzander)<br/>
      </li>

      <li>Improvements:<br/>
      tests: Check for virQEMUDriverConfigNew return value (Michal Privoznik),<br/>
      systemd: avoid string comparisons on dbus error messages (Daniel P. Berrange),<br/>
      aarch64: Support versioned machine types. (Richard W.M. Jones),<br/>
      qemu: Add check for PCI bridge placement if there are too many PCI devices (Erik Skultety),<br/>
      qemu: Fix auto-adding PCI bridge when all slots are reserved (Erik Skultety),<br/>
      qemu: move PCI slot assignment for PIIX3, Q35 into a separate function (Erik Skultety),<br/>
      qemu: reorder PCI slot assignment functions (Erik Skultety),<br/>
      schemas: Move definition of 'hexuint' to basictypes (Peter Krempa),<br/>
      util: json: Make argument of virJSONValueArraySize const (Peter Krempa),<br/>
      qemu: command: Honor const-correctnes in qemuBuildNumaArgStr (Peter Krempa),<br/>
      conf: Fix comment mentioning actual type of @multi member of virDevicePCIAddress (Peter Krempa),<br/>
      Grant access to helpers (Mike Latimer),<br/>
      conf: virDomainDefMaybeAddController tweak return code (Erik Skultety),<br/>
      qemu: Remove dead code in qemuDomainAssignPCIAddresses revert patch (Erik Skultety),<br/>
      network: Let domains be restricted to local DNS (Josh Stone),<br/>
      Make ZFS storage pool XML tests optional (Gary R Hook),<br/>
      Simplify condition for formatting CPU features (Ján Tomko),<br/>
      Add an XML test for host-model CPU with features (Ján Tomko),<br/>
      parallels: create container from existing image (Dmitry Guryanov),<br/>
      parallels: allow to add filesystems to container (Dmitry Guryanov),<br/>
      parallels: commit with PVCF_DETACH_HDD_BUNDLE flag (Dmitry Guryanov),<br/>
      parallels: dump info about container filesystems (Dmitry Guryanov),<br/>
      add ploop fs driver type (Dmitry Guryanov),<br/>
      qemu: Add support for enabling/disabling PMU (Martin Kletzander),<br/>
      docs, schema, conf: Add support for PMU feature (Martin Kletzander),<br/>
      virsh: add support for domain XML validation (Daniel P. Berrange),<br/>
      Add XML test for too many PCI devices on default PCI bus (Erik Skultety),<br/>
      Remove dead code in qemuDomainAssignPCIAddresses (Erik Skultety),<br/>
      virSocketAddrGetIpPrefix 0.0.0.0 and :: special cases (Cédric Bosdonnat),<br/>
      Use the network route definitions for domains (Cédric Bosdonnat),<br/>
      Move code related to network routes to networkcommon_conf.[ch] (Cédric Bosdonnat),<br/>
      Move network route definition to networkcommon.rng (Cédric Bosdonnat),<br/>
      Add support for schema validation when passing in XML (Daniel P. Berrange),<br/>
      Add virXMLValidateAgainstSchema helper method (Daniel P. Berrange),<br/>
      Change int to size_t in size var for tap/vhost FDs (Daniel P. Berrange),<br/>
      Log dtrace/systemd probes at INFO level instead of DEBUG (Daniel P. Berrange),<br/>
      Add systemd/dtrace probes for DBus APIs (Daniel P. Berrange),<br/>
      Add support for systemd-machined CreateMachineWithNetwork (Daniel P. Berrange),<br/>
      Mark the domain as active in qemuhotplugtest (Ján Tomko),<br/>
      Check for domain liveness in qemuDomainObjExitMonitor (Ján Tomko),<br/>
      check IOMMU group devices usage when preparing device for vfio passthrough (Shivaprasad G Bhat),<br/>
      virpci: Implement virPCIDeviceGetAddress function (Shivaprasad G Bhat),<br/>
      libxl: Add support for parsing/formating Xen XL config (Kiarie Kahurani),<br/>
      tests: Tests for the xen-xl parser (Kiarie Kahurani),<br/>
      Introduce support for parsing/formatting Xen xl config format (Jim Fehlig),<br/>
      qemu_process: detect updated video ram size values from QEMU (Pavel Hrdina),<br/>
      qemu_monitor: introduce new function to get QOM path (Pavel Hrdina),<br/>
      qemu, lxc: Warn if setting QoS on unsupported vNIC types (Michal Privoznik),<br/>
      conf: Increase virNetDevBandwidthParse intelligence (Michal Privoznik),<br/>
      Give virDomainDef parser &amp; formatter their own flags (Daniel P. Berrange),<br/>
      Decouple CPU XML formatting from domain XML public API flags (Daniel P. Berrange),<br/>
      formatdomaincaps: Correctly format API reference (Michal Privoznik),<br/>
      Fix flags passed to virDomainDefParseString by XenAPI driver (Daniel P. Berrange),<br/>
      Add stub virDomainDefineXMLFlags impls (Daniel P. Berrange),<br/>
      Add new virDomainDefineXMLFlags public API (Daniel P. Berrange),<br/>
      qemu: Allow enabling/disabling features with host-passthrough (Martin Kletzander),<br/>
      lxc: Move setting ifname_guest_actual to virLXCSetupInterfaces (Guido Günther),<br/>
      openvz: Check errors from virSocketAddrFormat (John Ferlan),<br/>
      qxl: change the default value for vgamem_mb to 16 MiB (Pavel Hrdina),<br/>
      virsh: Emit error for VSH_OT_DATA without VSH_OFLAG_REQ (Hao Liu),<br/>
      safezero: fall back to writing zeroes even when resizing (Ján Tomko),<br/>
      maint: in src/Makefile.am, $(top_srcdir)/src is verbose (Eric Blake),<br/>
      nwfilter: Add support for icmpv6 filtering (Stefan Berger),<br/>
      Parallels: Add VNC hostname setup (Alexander Burluka),<br/>
      qemu: fix miss goto cleanup in qemuDomainAttachNetDevice (Luyao Huang),<br/>
      networkGetDHCPLeases: Remove unnecessary error reporting (Nehal J Wani),<br/>
      qemu: use a wrong name for guest panic status (Luyao Huang),<br/>
      maint: update to latest gnulib (Eric Blake),<br/>
      Report error if a driver can't handle multiple IP addresses (Cédric Bosdonnat),<br/>
      Openvz --ipadd can be provided multiple times (Cédric Bosdonnat),<br/>
      LXC: honour network devices link state (Cédric Bosdonnat),<br/>
      LXC: use the new net devices routes definition (Cédric Bosdonnat),<br/>
      lxc conf2xml: convert lxc.network.ipv[46].gateway (Cédric Bosdonnat),<br/>
      Domain network devices can now have a &lt;route&gt; element (Cédric Bosdonnat),<br/>
      lxc conf2xml: convert ip addresses for hostdev NICs (Cédric Bosdonnat),<br/>
      Allow network capabilities hostdev to configure IP addresses (Cédric Bosdonnat),<br/>
      lxc conf2xml: convert IP addresses (Cédric Bosdonnat),<br/>
      LXC: set IP addresses to veth devices in the container (Cédric Bosdonnat),<br/>
      Domain conf: allow more than one IP address for net devices (Cédric Bosdonnat),<br/>
      Renamed virNetDevClearIPv4Address to virNetDevClearIPAddress (Cédric Bosdonnat),<br/>
      virNetDevClearIPv4Address: netlink implementation (Cédric Bosdonnat),<br/>
      virNetDevAddRoute: implementation using netlink (Cédric Bosdonnat),<br/>
      Renamed virNetDevSetIPv4Address to virNetDevSetIPAddress (Cédric Bosdonnat),<br/>
      virNetDevSetIPv4Address: libnl implementation (Cédric Bosdonnat),<br/>
      Forgot to cleanup ifname_guest* in domain network def parsing (Cédric Bosdonnat),<br/>
      maint: fix date in local gnulib patch (Daniel P. Berrange),<br/>
      maint: update to latest gnulib (Daniel P. Berrange),<br/>
      Teach AppArmor, that /usr/lib64 may exist. (Cedric Bosdonnat),<br/>
      Add tests to xmconfigtest (Chunyan Liu),<br/>
      xenconfig: set HVM pae/apic/acpi/ default to 1 (Chunyan Liu),<br/>
      src/xenconfig: Export helper functions (Kiarie Kahurani),<br/>
      capabilities: Format &lt;domain/&gt; properly (Michal Privoznik),<br/>
      parallels: report, that cdrom image is raw (Dmitry Guryanov),<br/>
      tests: Set up two more overrides for root builders (Martin Kletzander),<br/>
      test: fix nwfilter tests following changes in virfirewall.c (Stefan Berger),<br/>
      qemu: completely rework reference counting (Martin Kletzander),<br/>
      maint: update .mailmap (Claudio Bley),<br/>
      qemu: Create memory-backend-{ram,file} iff needed (Michal Privoznik),<br/>
      Remove redundant cleanup in qemuDomainAttachVirtioDiskDevice (Ján Tomko),<br/>
      Fix error message on redirdev caps detection (Ján Tomko),<br/>
      logical: Add "--type snapshot" to lvcreate command (John Ferlan),<br/>
      getstats: crawl backing chain for qemu (Eric Blake),<br/>
      getstats: split block stats reporting for easier recursion (Eric Blake),<br/>
      getstats: add new flag for block backing chain (Eric Blake),<br/>
      getstats: prepare for dynamic block.count stat (Eric Blake),<br/>
      getstats: report block sizes for offline domains (Eric Blake),<br/>
      qemu: refactor blockinfo data gathering (Eric Blake),<br/>
      getstats: rearrange blockinfo gathering (Eric Blake),<br/>
      getstats: perform recursion in monitor collection (Eric Blake),<br/>
      getstats: prepare monitor collection for recursion (Eric Blake),<br/>
      qemu: let blockinfo reuse virStorageSource (Eric Blake),<br/>
      qemu: refactor blockinfo job handling (Eric Blake),<br/>
      build: fix typo in previous patch (Eric Blake),<br/>
      virstoragefile: Have virStorageFileResize use safezero (John Ferlan),<br/>
      virfile: Refactor safezero (John Ferlan),<br/>
      conf: Rework virDomainObjListFindByUUID to allow more concurrent APIs (Martin Kletzander),<br/>
      storage: unify permission formatting (Martin Kletzander),<br/>
      qemu: Leave cpuset.mems in parent cgroup alone (Martin Kletzander),<br/>
      qemu: Save numad advice into qemuDomainObjPrivate (Martin Kletzander),<br/>
      qemu: Remove unnecessary qemuSetupCgroupPostInit function (Martin Kletzander),<br/>
      util: Add virNumaGetHostNodeset (Martin Kletzander),<br/>
      util: Add function virCgroupHasEmptyTasks (Martin Kletzander),<br/>
      spec: Fix syntax (Jiri Denemark),<br/>
      spec: Disable -Werror in Fedora RPM builds (Daniel P. Berrange),<br/>
      parallels: set format for real disk devices (Dmitry Guryanov),<br/>
      parallels: support NULL virDomainVideoAccelDefPtr (Dmitry Guryanov),<br/>
      qemu: add/remove bridge fdb entries as guest CPUs are started/stopped (Laine Stump),<br/>
      qemu: make persistent update of graphics device supported (Wang Rui),<br/>
      qemu: fix alignment of qemuDomainFindGraphics (Wang Rui),<br/>
      qemu: report properer error number when change graphics failed (Wang Rui),<br/>
      qemu: Allow system pages to &lt;memoryBacking/&gt; (Michal Privoznik),<br/>
      virconf: Introduce VIR_CONF_ULONG (Michal Privoznik),<br/>
      virConfType: switch to VIR_ENUM_{DECL,IMPL} (Michal Privoznik),<br/>
      virConfSetValue: Simplify condition (Michal Privoznik),<br/>
      conf: move the check for secondary consoles of targetType serial (Erik Skultety),<br/>
      qemu: add a qemuInterfaceStopDevices(), called when guest CPUs stop (Laine Stump),<br/>
      qemu: always call qemuInterfaceStartDevices() when starting CPUs (Laine Stump),<br/>
      conf: Ignore device address for model=none usb controller and memballon (Luyao Huang)<br/>
      </li>

      <li>Cleanups:<br/>
      Indentation (Ján Tomko)<br/>
      </li>
    </ul>

  </body>
</html>
