As scheduled, I made the new release of libvirt-0.9.3 today,
it is available at
ftp://libvirt.org/libvirt/ , the rpms are still being
pushed as I write.
This is a fairly large release again, with over 330 commits
incorporated, including a number of new APIs, large refactoring of the
client server code, LXC containers improvements and many improvements
and various bug fixes.
Features:
- vcpupin: introduce the new libvirt API (virDomainGetVcpupinInfo) (Taku Izumi)
- Add TXT record support for virtual DNS service (Michal Novotny)
- Support reboots with the QEMU driver (Daniel P. Berrange)
- Introduce virDomainGetControlInfo API (Jiri Denemark)
- virNodeGetMemoryStats: Expose new API (Minoru Usui)
- virNodeGetCPUTime: Implement public API (Minoru Usui)
- send-key: Defining the public API (Lai Jiangshan)
- vcpupin: introduce a new libvirt API (virDomainPinVcpuFlags) (Taku Izumi)
- support multifunction PCI device (Wen Congyang)
- lxc: various improvements
Documentation:
- Add documentation for configuration lock managers (Daniel P. Berrange)
- fix indentation of sub-elements of <ip> in network XML (Laine Stump)
- document correct flag name (Eric Blake)
- documenting the 802.1Qbh parameters of a 'direct' interface (David S. Wang)
- Make virConnectClose comply to apibuild.py expectations (Matthias Bolte)
- fix docs to match behavior of virConnectClose (Eric Blake)
- numatune: Add doc for new numatune XML (Osier Yang)
- Fix documentation of virStreamRecv (Matthias Bolte)
- updated list of applications using libvirt. (Ohad Levy)
- improve VIR_DOMAIN_AFFECT_CURRENT description (Eric Blake)
- Add doc for video element (Osier Yang)
- Make hvsupport.pl pick up the host device drivers (Matthias Bolte)
Portability:
- Explicitely invoke python for API doc generator (Daniel Veillard)
- fix virParseVersionString with linux 3.0 (Scott Moser)
- Add conditionals to allow build without SASL (Daniel P. Berrange)
- Add missing include of signal.h in virnetsocket.c (Daniel P. Berrange)
- Fix compilation with systemtap 1.3 (Matthias Bolte)
- build: fix mingw build (Eric Blake)
- daemon: Fix build without polkit (Jiri Denemark)
- build: fix 'make check' when pdwtags is available (Eric Blake)
- build: sanlock-devel is not in F15 yet (Eric Blake)
- Only include parthelper if built with storage_disk (Ruben Kerkhof)
- build: fix VPATH builds (Eric Blake)
- python: Don't declare Py_ssize_t for Python 2.6 (Matthias Bolte)
- build: avoid python 2.4 build failure (Eric Blake)
- build: fix NUMA build on RHEL 5 (Eric Blake)
- build: avoid python 2.4 build failure (Eric Blake)
- build: avoid compiler failure (Eric Blake)
- build: fix compilation on systems missing libnl and new includes (Stefan Berger)
- configure: Make libnl optional unless macvtap is required (Matthias Bolte)
- build: require newer netcf when it is available (Eric Blake)
- build: fix building error when building without libvirtd (Wen Congyang)
- Skip nodeinfo test on non intel architectures (Guido Günther)
- Fix dlopen dependency (Matthias Bolte)
- virt-aa-helper: add missing include (Eric Blake)
Bug Fixes:
- initialize pointer to NULL (Wen Congyang)
- storage: avoid crash on parse error (Eric Blake)
- vmware: avoid null deref on failed lookup (Eric Blake)
- qemu: avoid null deref on low memory (Eric Blake)
- rpc: avoid memory leak on error (Eric Blake)
- rpc: fix logic bug (Eric Blake)
- pci: avoid memory leak on error (Eric Blake)
- interface: avoid memory leak on parse error (Eric Blake)
- libvirtd: avoid memory leak on OOM (Eric Blake)
- build: avoid double-close bug with pipe2 (Eric Blake)
- rpc: avoid freeing uninitialized variable (Eric Blake)
- virsh: avoid uninitialized variable (Eric Blake)
- virsh: avoid integer overflow (Eric Blake)
- Fix stream procedure number for virDomainMigratePrepareTunnel3 (Daniel P. Berrange)
- Fix release of virNetMessagePtr instances in streams processing (Daniel P. Berrange)
- Fix potential crash when saving guests (Daniel P. Berrange)
- Fix uninitialized value in QEMU monitor FD sending code (Daniel P. Berrange)
- Fix leak of JSON object for events (Daniel P. Berrange)
- Fix use of uninitialized memory when releasing PCI slots (Daniel P. Berrange)
- Fix leak of virStreamPtr object with callback added in fdstream impl (Daniel P.
Berrange)
- Fix leak of mdnsGroupName in virNetServer object (Daniel P. Berrange)
- Fix release of filtered stream messages (Daniel P. Berrange)
- save domain status after modifing vcpupin (Wen Congyang)
- Fix memory leak in virDomainVcpuPinDel() (Wen Congyang)
- sysinfo: fix illegal NULL return (Minoru Usui)
- Fix locking wrt virNetClientStreamPtr object (Daniel P. Berrange)
- Avoid referencing NULL pointer when copying stream error (Daniel P. Berrange)
- Avoid free'ing a filtered RPC message in the server (Daniel P. Berrange)
- Ensure empty payload is written upon stream completion (Daniel P. Berrange)
- Fix propagation of RPC errors from streams (Daniel P. Berrange)
- Fix crash when aborting a stream from a I/O callback (Daniel P. Berrange)
- dnsmasq: Fix errno handling and don't unlink non-existing files (Matthias Bolte)
- tests: Fix memory leak in virnetmessagetest (Osier Yang)
- conf: Fix memory leak in virNetworkDNSDefFormat (Osier Yang)
- sysinfo: fix parsing regression (Eric Blake)
- remote: fix uninitialized variable (Eric Blake)
- build: avoid uninitialized variable (Eric Blake)
- buf: protect against integer overflow (Eric Blake)
- remote: protect against integer overflow (Eric Blake)
- Fix typo in libvirt_private.syms (Matthias Bolte)
- Fix some bugs in RPC protocol make rules (Daniel P. Berrange)
- Fix job type set in qemuMigrationPrepareDirect/PrepareTunnel (Daniel P. Berrange)
- Avoid high privileges taint warning for QEMU session driver (Daniel P. Berrange)
- util: Fix memory leak in virJSONParserHandleStartMap (Osier Yang)
- qemu: Fix memory leak in qemuProcessWaitForMonitor (Osier Yang)
- storage: fix volDelete return when volume still being allocated (Matthew Booth)
- Fix use-after-free in handling domain taint flags (Daniel P. Berrange)
- qemu: Fix one memory leak (Osier Yang)
- virsh: avoid bogus description (Eric Blake)
- set and restore MAC address of a NIC when using PASSTHROUGH mode (Dirk Herrendoerfer)
- conf: Fix one memory leak (Osier Yang)
- Add missing checks for NULL in domain lock manager (Daniel P. Berrange)
- Fix errno return in safezero() (Daniel P. Berrange)
- Fix allocation of veth's to not skip an index (Daniel P. Berrange)
- command: avoid double close (Eric Blake)
- qemu: Fix parsing 'info chardev' (Cole Robinson)
- vcpupin: Fix cpu affinity setting bug of qemu driver (Taku Izumi)
- daemon: plug memory leak (Eric Blake)
- qemu: add missing break statement (Eric Blake)
- storage: avoid mishandling backing store > 2GB (Eric Blake)
Improvements:
- tests: Add a general util test (Matthias Bolte)
- util: choose whether to require micro in version strings (Eric Blake)
- build: consistently use CFLAGS (Eric Blake)
- build: simplify sanlock distribution (Eric Blake)
- build: allow 'make syntax-check' on fresh checkout (Eric Blake)
- Send back an error if we get unexpected stream control message (Daniel P. Berrange)
- Add test case for parsing JSON docs (Daniel P. Berrange)
- Remove bogus warning message in JSON code (Daniel P. Berrange)
- Ensure RPC message is cleared before being reused (Daniel P. Berrange)
- Fix hardcoded limit on client requests in RPC code (Daniel P. Berrange)
- tests: Add valgrind.supp into EXTRA_DIST (Osier Yang)
- virsh: Fix a problem of buildPoolXML (Osier Yang)
- lock qemu_driver early in qemuGetSchedulerParametersFlags() (Wen Congyang)
- build: avoid pod2man on tarball (Eric Blake)
- Ensure that EOF is dispatched to the stream callback (Daniel P. Berrange)
- Improve two log messages in virNetMessage (Daniel P. Berrange)
- Lower logging level when failing to register socket watch (Daniel P. Berrange)
- screenshot: Set access rights to temporary file (Michal Privoznik)
- maint: improve makefile whitespace (Eric Blake)
- network: Don't ignore errors in dnsmasq config file creation (Matthias Bolte)
- network: Fix dnsmasq hostsfile creation logic and related tests (Matthias Bolte)
- build: update translated files (Eric Blake)
- Support automatic creation of leases for disks in sanlock (Daniel P. Berrange)
- Support loading a configuration file for sanlock plugin (Daniel P. Berrange)
- Allow per-driver config file for lock manager plugins (Daniel P. Berrange)
- network: add domain to unqualified names defined with <host> (Laine Stump)
- Convert libvirtd over to the new RPC handling APIs (Daniel P. Berrange)
- Convert the remote driver to new RPC client APIs (Daniel P. Berrange)
- Add XDR_CFLAGS to libvirt-net-rpc.la library (Daniel P. Berrange)
- Ensure sanlock socket is labelled with the VM process label (Daniel P. Berrange)
- Add a virSecurityManagerSetProcessFDLabel (Daniel P. Berrange)
- Rename virSecurityManagerSetFDLabel method (Daniel P. Berrange)
- Add node prefix to virNodeGet(CPU|Memory)Stats structs and defines (Matthias Bolte)
- qemu: Fix update device for CURRENT + FORCE flags (Jiri Denemark)
- nwfilter: Return error message about unresolvable variables (Stefan Berger)
- build: rename Vcpupin to VcpuPin (Eric Blake)
- sysinfo: cleanup function/struct names. (Minoru Usui)
- sysinfo: fix lack of error check in virSysinfoFormat(). (Minoru Usui)
- tests: Partly fix networkxml2argvtest being configure result dependent (Matthias Bolte)
- qemu: Remove bogus error codes for NUMA memory tuning (Osier Yang)
- network: fix indentation in networkBuildDnsmasqArgv (Laine Stump)
- vcpupin: add query option to virsh vcpupin command (Taku Izumi)
- vcpuinfo: add the code to fallback to try new API (Taku Izumi)
- vcpupin: implement the remote protocol to address the new API (Taku Izumi)
- vcpupin: implement the code to support new API for the qemu driver (Taku Izumi)
- build: update gnulib for intprops (Eric Blake)
- Rename iface(G|S)etMacaddr to iface(G|S)etMacAddress for consistency (Matthias Bolte)
- Network: Add support for DNS hosts definition to the network XML (Michal Novotny)
- Network: Add additional hosts internal infrastructure (Michal Novotny)
- Network: Add regression tests for the command-line arguments (Michal Novotny)
- Network: modify dnsmasq commandline build function to allow testing (Michal Novotny)
- tests: Improve IPv6 detection for virNetSocket tests (Matthias Bolte)
- Move load of AppArmor profile to GenLabel() (Jamie Strandboge)
- Add Memory Device Information to virSysinfoRead() from dmidecode type 17 (Minoru Usui)
- Add Processor Information to virSysinfoRead() from dmidecode type 4 (Minoru Usui)
- Cleanup virSysinfoRead() (Minoru Usui)
- Make sure virnetprotocol.[ch] are in BUILT_SOURCES (Daniel P. Berrange)
- maint: typo fixes (Eric Blake)
- Add missing translation of error message from QEMU reboot patch (Daniel P. Berrange)
- Allow automatic kill of guests when a connection is closed (Daniel P. Berrange)
- Automatically kill target QEMU if migration aborts abnormally (Daniel P. Berrange)
- Add infrastructure to automatically destroy guests when a connection closes (Daniel P.
Berrange)
- Move the RPC generator scripts into src/rpc (Daniel P. Berrange)
- Introduce generic RPC client objects (Daniel P. Berrange)
- Introduce generic RPC module for advertising via MDNS (Daniel P. Berrange)
- Introduce generic RPC server objects (Daniel P. Berrange)
- Integrate TLS/SASL directly into the socket APIs (Daniel P. Berrange)
- Generic module for handling SASL authentication & encryption (Daniel P. Berrange)
- Generic module for handling TLS encryption and x509 certs (Daniel P. Berrange)
- Introduce a generic object for using network sockets (Daniel P. Berrange)
- Provide a simple object for encoding/decoding RPC messages (Daniel P. Berrange)
- Defines the basics of a generic RPC protocol in XDR (Daniel P. Berrange)
- build: update to latest gnulib (Eric Blake)
- python: Generate virStreamFree but don't expose in bindings (Cole Robinson)
- maint: avoid future setgid problems (Eric Blake)
- qemu: Only check for NUMA availability if required (Jiri Denemark)
- util: avoid PATH_MAX-sized array (Eric Blake)
- xen: avoid PATH_MAX-sized array (Eric Blake)
- tests: avoid PATH_MAX-sized array (Eric Blake)
- virStorageVol: avoid PATH_MAX-sized array (Eric Blake)
- cleanup: make several interface functions commonly available (Stefan Berger)
- cleanup: make nlComm commonly available (Stefan Berger)
- maint: remove syntax-check exception (Eric Blake)
- Remove macvtap dependency on domain configuration (Daniel P. Berrange)
- util: Correct the error prompt string (Osier Yang)
- Fix to python API extractor and API doc generation (Daniel Veillard)
- qemu: domain I/O asynchronous handling (Michal Privoznik)
- python: Mark event callback wrappers as private (Cole Robinson)
- python: events: Fix C->Python handle callback prototype (Cole Robinson)
- python: Add bindings for virEvent*Handle/Timeout (Cole Robinson)
- events: Correct virEventAddTimeout docs (Cole Robinson)
- Promote virEvent*Handle/Timeout to public API (Cole Robinson)
- python: Implement virStreamSend/RecvAll helpers (Cole Robinson)
- python: Implement virStreamSend/Recv (Cole Robinson)
- conf: Make full use of goto label (Osier Yang)
- python: Implement bindings for virStreamEventAddCallback (Cole Robinson)
- python: generator: Don't print warning if nothing to warn about (Cole Robinson)
- python: libvirt-override: use simpler debug (Cole Robinson)
- virsh: enhance snapshot-create-as (Eric Blake)
- virsh: add snapshot-create-as command (Eric Blake)
- virsh: clarify snapshot vs. save (Eric Blake)
- Fix compile warnings in virsh vcpupin (Daniel P. Berrange)
- remote generator: Allow to annotate arrays with typecasts (Matthias Bolte)
- remote: Handle functions that return optional strings (Matthias Bolte)
- remote: Generate virDomainGetBlockPullInfo (Matthias Bolte)
- vcpupin: add vcpupin resetting feature to qemu driver (Taku Izumi)
- vcpupin: add virDomainVcpupinDel function (Taku Izumi)
- vcpupin: add reset option to virsh vcpupin command (Taku Izumi)
- vcpupin: improve vcpupin definition of virsh vcpupin (Taku Izumi)
- Fix preprocessor indentation in nodeinfo.c (Matthias Bolte)
- Move XenAPI driver to correct spec file section (Matthias Bolte)
- numatune: Add tests for numatune XML (Osier Yang)
- numatune: Support NUMA memory tuning in qemu driver (Osier Yang)
- numatune: Support persistent XML for numatune (Osier Yang)
- numatune: Define XML schema (Osier Yang)
- Update qemuDomainSetBlkioParameters to use flags (Hu Tao)
- update qemuDomainGetBlkioParameters to use flags (Hu Tao)
- Add new parameters for blkiotune (Hu Tao)
- apparmor: implement AppArmorSetFDLabel() (Jamie Strandboge)
- Add missing error reporting when loading mac filter config for QEMU (Daniel P.
Berrange)
- virsh: Add support for virDomainGetControlInfo (Jiri Denemark)
- qemu: Implement virDomainGetControlInfo (Jiri Denemark)
- Wire protocol and remote driver for virDomainGetControlInfo (Jiri Denemark)
- sendkey: use consistent API convention (Eric Blake)
- build: export correct function names (Eric Blake)
- build: avoid compiler warning on non-Linux (Eric Blake)
- remote generator: Handle struct returning functions better (part 2) (Matthias Bolte)
- Fix apibuild.py warnings about missing comment headers (Matthias Bolte)
- remote generator: Handle struct returning functions better (Matthias Bolte)
- support for Xen HVM Viridian (Hyper-V) enlightenment interface (Daniel Gollub)
- virsh: reduce complexity in argv iteration (Eric Blake)
- Add support for network filter code in LXC driver (Daniel P. Berrange)
- qemu: Translate boot config into bootindex if possible (Jiri Denemark)
- spice: add <clipboard copypaste='yes|no'> option (Marc-André Lureau)
- virNodeGetMemoryStats: Implement linux support (Minoru Usui)
- virNodeGetMemoryStats: Implement virsh support (Minoru Usui)
- virNodeGetMemoryStats: Implement remote protocol (Minoru Usui)
- virNodeGetMemoryStats: Implement public API (Minoru Usui)
- virNodeGetMemoryStats: Define internal driver API (Minoru Usui)
- virNodeGetCPUStats: Implement linux support (Minoru Usui)
- virNodeGetCPUStats: Implement virsh support (Minoru Usui)
- virNodeGetCPUStats: Implement remote protocol (Minoru Usui)
- virNodeGetCPUStats: Define internal driver API (Minoru Usui)
- virNodeGetCPUStats: Expose new API (Minoru Usui)
- Fix autostart flag when loading running domains (Michael Chapman)
- send-key: Implementing the remote protocol (Lai Jiangshan)
- send-key: Implementing the public API (Lai Jiangshan)
- send-key: Defining the internal API (Lai Jiangshan)
- remote generator: Handle (unsigned) int arrays (Lai Jiangshan)
- add VSH_OFLAG_REQ_OPT options (Lai Jiangshan)
- allow name for VSH_OT_ARGV options (Lai Jiangshan)
- storage: avoid an intermediate malloc (Eric Blake)
- command: reduce duplicated debug messages (Eric Blake)
- qemu: Scrape stdout for virtio console pty (Cole Robinson)
- virsh: Add daemon version reporting (Michal Privoznik)
- nodeinfo: remove superflous braces (Guido Günther)
- util: Cleanup indention problem in virterror.c (Osier Yang)
- qemu: Parse current balloon value returned by query_balloon (Osier Yang)
- Deprecate several CURRENT/LIVE/CONFIG enums (Hu Tao)
- qemu: Faster response time to qemu startup errors (Stefan Berger)
- build: update to latest gnulib (Eric Blake)
- vcpupin: add the new option to "virsh vcpupin" command (Taku Izumi)
- vcpupin: implement the remote protocol to address the new API (Taku Izumi)
- vcpupin: implement the code to address the new API in the qemu driver (Taku Izumi)
- Use virTimeMs when appropriate (Jiri Denemark)
- Introduce virTimeMs for getting current time in ms (Jiri Denemark)
- test: Remove unused timeval (Jiri Denemark)
- tests: add a test for multi function PCI device (Wen Congyang)
- the hotplugged PCI device should use the whole slot (Wen Congyang)
- assign the whole slot to the PCI device that has no address (Wen Congyang)
- Reimplement qemuDomainPCIAddressReserveSlot(): reserve all functions in the slot (Wen
Congyang)
- the key of hash table should include the function value (Wen Congyang)
- prevent hot unplugging multi function PCI device (Wen Congyang)
- check whether qemu supports multi function PCI device (Wen Congyang)
- xenapi: Improve error message on session failure (Matthew Booth)
- qemu: Fix one type in the error prompt string (Osier Yang)
- Move VMware Workstation/Player driver to correct spec file section (Matthias Bolte)
- esx: avoid dead code (Eric Blake)
- qemu: reorder checks for safety (Eric Blake)
- uuid: annotate non-null requirements (Eric Blake)
- debug: avoid null dereference on uuid lookup api (Eric Blake)
- python: avoid unlikely sign extension bug (Eric Blake)
- build: detect Coverity 5.3.0 (Eric Blake)
- build: Fix typos in configure.ac (Osier Yang)
- virsh: Expose virDomainMigrateSetMaxSpeed API to virsh (Osier Yang)
- lxc: Ensure container <init> actually exists (Cole Robinson)
- lxc: Verify root fs exists before mounting (Cole Robinson)
- lxc: controller: Improve container error reporting (Cole Robinson)
- lxc: Improve guest startup error reporting (Cole Robinson)
- lxc: Refactor controller command building (Cole Robinson)
- lxc: Don't report error in Wait/SendContinue (Cole Robinson)
- lxc: Drop container stdio as late as possible (Cole Robinson)
- util: Implement virRun as a wrapper around virCommand (Cole Robinson)
- qemu: Convert virExec usage to virCommand (Cole Robinson)
- Use VIR_USE_CPU instead of new wheel (Osier Yang)
- Avoid virGetVersion failure on specific driver support configurations (Matthias Bolte)
Cleanups
- cgroup: silence coverity warning (Eric Blake)
- rpc: silence coverity warning (Eric Blake)
- qemu: silence coverity warnings (Eric Blake)
- build: avoid 'make syntax-check' failure (Eric Blake)
- build: remove dead variables (Eric Blake)
- Remove bogus jsondata.h file reference which does not exist (Daniel P. Berrange)
- build: ignore generated file (Eric Blake)
- build: Don't expect translatable strings in a dead file (Jiri Denemark)
- Cleanup remote protocol definitions (Daniel P. Berrange)
- Remove obsolete libvirtd mdns code (Daniel P. Berrange)
- build: avoid long line tests (Eric Blake)
- maint: add omitted copyright header (Eric Blake)
- build: break some long lines (Eric Blake)
- build: silence coverity false positives (Eric Blake)
- secret: drop dead code (Eric Blake)
- build: silence coverity false positive (Eric Blake)
- Move virRun, virExec*, virFork to util/command (Cole Robinson)
- util: Remove unused virExec wrapper (Cole Robinson)
- esx: Remove duplicated invalid-argument checks (Matthias Bolte)
Thanks everybody for your help with this release, be it by submitting
documentations, ideas, patches, etc ... !
Daniel
--
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/