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