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@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list