Following Dan advice, I decided to not wait for more patches and push the current git head as the release. Let's plan to have another release by this month end with the QEmu debugging and hacking APIs. The release is available as usual at ftp://libvirt.org/libvirt Quite a lot of bug fixes during the two months since 0.8.1, and a few new feature. It also tagged more commits as being documentation or portability fixes, it's good :-) Features: - phyp: adding support for IVM (Eduardo Otubo) - libvirt: introduce domainCreateWithFlags API (Eric Blake) - add 802.1Qbh and 802.1Qbg switches handling (Stefan Berger) - Support for VirtualBox version 3.2 (Jean-Baptiste Rouault) - Init script for handling guests on shutdown/boot (Jiri Denemark) - qemu: live migration with non-shared storage for kvm (Kenneth Nagin) Documentation: - html docs: add link to PHP bindings by Radek Hladik (Justin Clift) - virsh: document attach-disk better (Eric Blake) - bridge_driver.c: fix file description (Alan Pevec) - nwfilter: extensions of docs with (Stefan Berger) - Fix description of virStorageVolGetInfo() (Philipp Hahn) - virsh: improve help text for vol query commands (Justin Clift) - virsh: fixed trivial comment and debug message in vshCommandOptVolBy function (Justin Clift) - virsh: remove xen reference in header comment (Justin Clift) - virsh: add the volume commands to the virsh man page (Justin Clift) - virsh: fix minor virsh man page typos and formatting problems (Justin Clift) - Trivial virsh.pod additions --all for "list" command and similar (Justin Clift) - Add docs on drive <serial> element (???? ?????????) - daemon: sysconf: Update comment about VNC audio (Cole Robinson) - nwfilter: documentation (Stefan Berger) - docs: distribute more coding convention documentation (Eric Blake) - note a typo: VIR_MIGRATE_TUNNELLED should be VIR_MIGRATE_TUNNELED, (Jim Meyering) - datatypes: fix comment typo (Eric Blake) - Fix a typo in docs (Ersek Laszlo) - docs: hacking: explain why using curly braces well is important (Jim Meyering) Portability: - cgroup: Fix compilation broken on MinGW due to dirent->d_type (Ryota Ozaki) - parthelper: fix compilation without optimization (Eric Blake) - build: fix some mingw issues (Eric Blake) - build: avoid pthreads-win32 on mingw (Eric Blake) - build: fix cygwin build, correctly this time (Eric Blake) - build: fix up some compiler flags (Eric Blake) - build: avoid compile failure on linux kernels older than 2.6.19 (Jim Meyering) - libvirt_proxy: link with -lpthread if needed (Eric Blake) - build: allow older gettext (Eric Blake) - mingw32-libvirt.spec: bring up to date (Eric Blake) - avoid link error in tests using libvirt_util; due to pthread_sigmask (Jim Meyering) - configure.ac: Avoid uname, which breaks cross-compilation (Matthias Bolte) - mingw: Fix two undefined symbols (Matthias Bolte) - build: avoid compiler warning (Eric Blake) - build: prefer WIN32 over __MINGW32__ checks (Eric Blake) - dnsmasqReload: avoid mingw link failure (Eric Blake) - mingw: Fix symbol export (Matthias Bolte) Bug Fixes: - Avoid invoking the qemu monitor destroy callback if the constructor fails (Daniel P. Berrange) - cgroup: Add missing errno == ENOENT check in virCgroupRemoveRecursively (Ryota Ozaki) - Fix crash when detaching devices from qemu domains. (Chris Lalancette) - virFileResolveLink: guarantee an absolute path (Eric Blake) - phyp: don't steal storage management from other drivers (Eric Blake) - Avoid calling virStorageFileIsSharedFS with NULL (Laine Stump) - lxc: Fix virsh console doesn't work after restarting libvirtd (Ryota Ozaki) - lxc: Fix error handlings in lxcContainerRenameAndEnableInterfaces (Ryota Ozaki) - Set proper selinux label on image file during qemu domain restore (Laine Stump) - build: fix regression with libvirt-api.xml generation (Eric Blake) - Fix a reference leak for node devices. (Chris Lalancette) - Don't squash file permissions when migration fails (Daniel P. Berrange) - Fix migration in text mode and shared storage migration in json mode (Daniel P. Berrange) - Add missing parameter in python Disk IO error callback (Daniel P. Berrange) - Check for presence of qemu -nodefconfig option before using it (Laine Stump) - cgroup: Change virCgroupRemove to remove all descendant groups at first (Ryota Ozaki) - Fix reference handling leak on qemuMonitor (Daniel P. Berrange) - Don't leak open fd to virsh in libvirt-guests init script (Jiri Denemark) - nwfilter: fix loadable module support (Stefan Berger) - Do not free static buffer with UUID (Jiri Denemark) - qemu: Fix crash on failed VM startup (Cole Robinson) - Add several missing vir*Free calls in libvirtd's remote code (Matthias Bolte) - Fix enumeration of partitions in disks with a trailing digit in path (Daniel P. Berrange) - vbox: check getenv("DISPLAY") for NULL in vboxDomainDumpXML (Matthias Bolte) - Check getenv("PATH") for NULL in virFindFileInPath (Matthias Bolte) - Fix cgroup setup code to cope with root squashing NFS (Daniel P. Berrange) - Fix leaks in udev device add/remove v3 (David Allan) - Ensure that PCI device is reattached to host if hotadd fails (Daniel P. Berrange) - Don't raise errors in the selinux restore code (Daniel P. Berrange) - Fix check for errors in device_add command in QEMU text monitor (Daniel P. Berrange) - Network duplicate UUID/name checking (Daniel P. Berrange) - Storage pool duplicate UUID/name checking (Daniel P. Berrange) - Fix auto-adding of virtio serial controllers (Daniel P. Berrange) - Ensure UNIX domain sockets are removed on daemon shutdown (Daniel P. Berrange) - Fix AppArmor save/restore.Add stdin_path to qemudStartVMDaemon() args. (Jamie Strandboge) - Adjust block size used by dd to speed QEMU domain save operations. (Laine Stump) - Fix dereference of potentially freed pointer in qemudDomainSaveFlags (Laine Stump) - Update nodedev scsi_host data before use (David Allan) - Fix device destroy return value (David Allan) - storage: Check for invalid storage mode before opening (Cole Robinson) - Improve nodedev parent/child relationships (David Allan) - network: bridge: Don't start network if it collides with host routing (Cole Robinson) - Fix integer overflow in hotplug methods (Daniel P. Berrange) - Fix failing virGetHostname. (Chris Lalancette) - storage: Sanitize pool target paths (Cole Robinson) - Fix handling of disk backing stores with cgroups (Daniel P. Berrange) - Fix up basic migration. (Chris Lalancette) - qemu: Release bus address on PCI host device remove (Alex Williamson) - qemu: avoid corrupting guest info struct on host device PCI hot add (Alex Williamson) - Query block allocation extent from QEMU monitor (Daniel P. Berrange) - Don't overwrite virDomainAssignDef errors. (Chris Lalancette) - Fix race in finding available vnc port (Jim Fehlig) - qemu driver: fix version check typos (Chris Wright) - daemon: A few initscript corrections (Cole Robinson) - qemu: Properly cleanup in security startup error path (Cole Robinson) - qemudDomainMigrateFinish2: handle a case of virDomainSaveStatus failure (Jim Meyering) - Fix potential NULL dereference in remoteDomainMigratePrepare2 (Jiri Denemark) - qemudDomainRestore: handle a case of virDomainSaveStatus failure (Jim Meyering) - python: don't ignore virInitialize failure in module initialization (Jim Meyering) - tests: do not ignore virInitialize failure (Jim Meyering) - qemuMonitorTextMigrate: avoid leak on OOM-error path (Jim Meyering) - virNWFilterDefParseXML: avoid leak on error paths (Jim Meyering) - virDomainNetDefParseXML: avoid leak upon multiple "filterref" (Jim Meyering) - ebiptablesWriteToTempFile: don't close a negative file descriptor (Jim Meyering) - Protect against NULL pointer flaws in monitor usage (Daniel P. Berrange) - Fix multiple potential NULL pointer references in monitor usage (Daniel P. Berrange) - umlAutostartDomain: avoid NULL-deref upon virGetLastError failure (Jim Meyering) - x86ModelHasFeature: avoid NULL-dereference for unmatched CPU "feature" (Jim Meyering) - qemudDomainSetVcpus: avoid NULL-deref (Jim Meyering) - nwfilter: Add missing driver lock in qemu driver (Stefan Berger) - Fix a misuse of virAsprintf in qemudDomainMemoryPeek (Ryota Ozaki) - Don't reset user/group/security label on shared filesystems during migrate (Daniel P. Berrange) - Fix handling of disk backing stores with cgroups (Daniel P. Berrange) - Fix possible crash in handling IO Error event (Daniel P. Berrange) - Fix monitor ref counting when adding event handle (Jiri Denemark) - Remove watches before calling REMOTE_PROC_CLOSE (Jiri Denemark) - node_device: udev: Fix PCI product/vendor swappage (Cole Robinson) - virsh: schedinfo --set invalid=value would simply ignore the option (Jim Meyering) - Remove unused nwfilter field from struct remote_error (Matthew Booth) - util: fix va_start usage bug (Eric Blake) - Don't wipe generated iface target in active domains (Jiri Denemark) - Various fixes for the spec file (Daniel Veillard) - lxc: Check domain is active/inactive as required by operation (Jiri Denemark) - lxc: Make SetMemory work for active domains only (Jiri Denemark) - cgroup: Fix possible memory leak in virCgroupMakeGroup (Ryota Ozaki) - Fix memory leaks in cmdInterfaceEdit and cmdNWFilterEdit. (Laine Stump) - lxc: Fix failure on starting a domain with multiple interfaces (Ryota Ozaki) Improvements: - vbox: Let configure detect/set the XPCOMC directory (Matthias Bolte) - udev: Parse PCI devices even if libpciaccess fails (Cole Robinson) - qemu: Improve some qemu.conf error reporting (Cole Robinson) - util: virExec: Dispatch all errors raised after fork (Cole Robinson) - virsh: tweak help output for VSH_OT_DATA (Eric Blake) - Check for active PCI devices when doing nodedevice operations. (Chris Lalancette) - virsh: add new --details option to pool-list (Justin Clift) - Selectively ignore domainSetSecurityAllLabel failure in domain restore (Laine Stump) - use virStorageFileIsSharedFS utility function in qemudDomainSaveFlag (Laine Stump) - Enhance virStorageFileIsSharedFS (Laine Stump) - phyp: optimize use of sed (Eric Blake) - phyp: add storage management driver (Eduardo Otubo) - phyp: add rudimentary storage driver (Eduardo Otubo) - maint: add gnulib gettimeofday module (Eric Blake) - Avoid blocking all APIs during incoming migration (Daniel P. Berrange) - Set labelling for character devices in security drivers (Daniel P. Berrange) - Add API for iterating over all character devices (Daniel P. Berrange) - Adding Storage Management driver (style and indentation) (Eduardo Otubo) - esx: Add support for the controller element (Matthias Bolte) - Add optional model attribute to the controller element (Matthias Bolte) - Add wide SCSI bus disk address generation support (Matthias Bolte) - cgroup: Enable memory.use_hierarchy of cgroup for domain (Ryota Ozaki) - network: allow tftp port if tftp is defined (Alan Pevec) - Add '-nodefconfig' command line arg to QEMU (Daniel P. Berrange) - Make checks for inactive QEMU guest more robust (Daniel P. Berrange) - Improve some error messages about unsupported APIs/URIs (Daniel P. Berrange) - Index hashes by UUID instead of name (Jiri Denemark) - Allow one-or-more <boot dev="..."/> entries (Philipp Hahn) - virsh: add --uuid option to vol-pool (Justin Clift) - nwfilter: add XML attribute to control iptables state match (Stefan Berger) - virsh: ensure persistence and autostart are shown for dominfo and pool-info (Justin Clift) - nwfilter: use match target on incoming traffic (Stefan Berger) - macvtap: work-around for 2.6.32 and older kernels (Stefan Berger) - virsh: add pool support to vol-key command (Justin Clift) - esx: Update case insensitive .vmx tests (Matthias Bolte) - esx: Accept 'disk' as harddisk device type in .vmx files (Matthias Bolte) - virsh: mark autostart answers for translation (Justin Clift) - virsh: add start --paused support (Eric Blake) - qemu: support starting persistent domain paused (Eric Blake) - drivers: add virDomainCreateWithFlags if virDomainCreate exists (Eric Blake) - remote: protocol implementation for virDomainCreateWithFlags (Eric Blake) - uml: sanity check external data before using it (Eric Blake) - Improve error message for disabled client-side drivers (Matthias Bolte) - virsh: add snapshot backing store support to vol-create-as (Justin Clift) - esx: Add proxy query parameter (Matthias Bolte) - esx: Refactor esxUtil_ParseQuery's parameter handling (Matthias Bolte) - virsh: add new vol-pool command (Justin Clift) - virsh: add --paused option to create (Eric Blake) - qemu: allow creation of a paused domain (Eric Blake) - virDomainCreateXML: support new flag (Eric Blake) - Add multiIQN tests (David Allan) - Add multiiqn XML dump (David Allan) - Fix test breakage from virtio serial changes (Daniel P. Berrange) - Enable probing of VPC disk format type (Daniel P. Berrange) - Prefer UDEV to HAL drivers if both a compiled (Daniel P. Berrange) - Add support for setting socket MLS level in SELinux driver (Daniel J Walsh) - Fix error codes for missing storage pools (Daniel P. Berrange) - Include port number with virtio serial devices (Daniel P. Berrange) - Disable use of 'reason' field in block IO event in QEMU (Daniel P. Berrange) - Add stdin_path to qemudStartVMDaemon() args. (Jamie Strandboge) - Allocate buffer to hold xend response (Jim Fehlig) - phyp: Strict check when listing domains (Eduardo Otubo) - hostusb: Properly handle 'usbX' sysfs files (Cole Robinson) - Add --source-format argument to virsh pool-define-as and pool-create-as (Justin Clift) - Add --source-format argument to virsh pool-define-as and pool-create-as (Justin Clift) - build: fix VPATH 'make syntax-check' (Eric Blake) - qemu: Add a qemu.conf option for clearing capabilities (Cole Robinson) - macvtap: cannot support target device name (Stefan Berger) - Fix libvirt-guests init script (Jiri Denemark) - maint: new syntax-check rule to ensure that AUTHORS stays in sync (Jim Meyering) - maint: update AUTHORS with recent contributors (Eric Blake) - xen: Fix chardev listen sexpr formatting (Cole Robinson) - v2 of Cole's wlan support (David Allan) - Install, distribute and package domainsnapshot.rng (Matthias Bolte) - build: support 'make check' in pristine tree (Eric Blake) - esx: Expose host UUID in the capabilities XML (Matthias Bolte) - Pass pre-opened PCI device sysfs config file to QEMU (Alex Williamson) - xen-proxy build broken (Matthias Bolte) - esx: Add read-only storage pool access (Matthias Bolte) - libvirtd: diagnose invalid host UUID (Jim Meyering) - vepa: parsing for 802.1Qb{g|h} XML (Stefan Berger) - vepa+vsi: Introduce dependency on libnl (Stefan Berger) - Expose a host UUID in the capabilities XML (Daniel P. Berrange) - qemu: Allow using regular audio backends with VNC (Cole Robinson) - lxcSetSchedulerParameters: reverse order of tests; diagnose a failure (Jim Meyering) - libvirtd: start each diagnostic with "argv0: " (Jim Meyering) - libvirtd: mark strings for translation, including --help output (Jim Meyering) - build: force init scripts to rebuild on changed --prefix (Eric Blake) - build: Distribute the whole tests/qemuhelpdata directory (Matthias Bolte) - Add defines for QEMU_VNC_PORT_{MIN,MAX} and use them (Jim Fehlig) - Add simple bitmap operations to utils (Jim Fehlig) - daemon: Export SDL audio environment variables (Cole Robinson) - Autostart domains using virDomainObjStart (Jiri Denemark) - maint: update po/POTFILES.in (Jim Meyering) - maint: enforce policy wrt VIR_DEBUG and VIR_DEBUG0 (Jim Meyering) - maint: enforce policy wrt VIR_ERROR and VIR_ERROR0 (Jim Meyering) - maint: change "" in err ? err->message : "" to _("unknown error"), ... (Jim Meyering) - qemu: Use ShutdownVMDaemon for all startup cleanup paths (Cole Robinson) - Domain snapshot RNG and tests. (Chris Lalancette) - Fix up the python bindings for snapshotting. (Chris Lalancette) - qemu_conf.c: also recognize new first line of qemu -help output (Jim Meyering) - lxc_controller.c: don't ignore failed "accept" (Jim Meyering) - qemu: Don't deny ShutdownVMDaemon for non-running VMs (Cole Robinson) - libvirtd: don't ignore virInitialize failure (Jim Meyering) - maint: prohibit newline at end of diagnostic (Jim Meyering) - maint: remove unwanted newline at end of diagnostic (Jim Meyering) - build: distribute missing file (Eric Blake) - esx: Make esxVI_*_CastFromAnyType dynamically dispatched (Matthias Bolte) - esx: Allow esxVI_X_DynamicCast to be called successfully on X objects (Matthias Bolte) - tests: the remote_protocol check also accommodates older pdwtags (Jim Meyering) - maint: enforce no-markup policy wrt VIR_WARN-like macros (Jim Meyering) - Add support for SSE4.1 and SSE4.2 CPU features (Jiri Denemark) - maint: add more free-like functions to the list and deal with fallout (Jim Meyering) - maint: add virCgroupFree to the list of free-like functions (Jim Meyering) - qemudDomainSetVcpus: avoid NULL-deref on failed uuid look-up (Jim Meyering) - Add CIFS to the list of network file systems (Matthias Bolte) - Add VIR_STORAGE_POOL_INACCESSIBLE to denote inaccessible storage pools (Matthias Bolte) - qemu_conf: fix flag value (Eric Blake) - qemu: Clarify a couple error messages (Cole Robinson) - virFileResolveLink: fix return value (Eric Blake) - tests: Skip daemon-conf test if dir exceeds UNIX_PATH_MAX (Cole Robinson) - pci: Give an explicit error if device not found (Cole Robinson) - qemu: Report cmdline output if VM dies early (Cole Robinson) - qemu_driver: avoid NULL dereference (Jim Meyering) - Make domain save work when dynamic_ownership=0 (Daniel P. Berrange) - Add support for NIC hotplug using netdev_add in QEMU (Daniel P. Berrange) - build: update gnulib (Eric Blake) - tests: correct PATH in new test, for when running manually (Jim Meyering) - Add env variable for debugging gnutls usage (Daniel P. Berrange) - maint: allow VPATH use of remote_protocol-structs (Eric Blake) - help avoid accidental remote_protocol.x changes (Jim Meyering) - build: use LIBADD, not LDFLAGS, for adding libraries (Eric Blake) - Implement SCSI disk unplugging (Wolfgang Mauerer) - qemu: use better types (Eric Blake) - Refactor disk unplugging (Wolfgang Mauerer) - build: simplify checks for sched.h (Eric Blake) - build: use gnulib's sys/wait.h (Eric Blake) - build: use gnulib's uname (Eric Blake) - build: rely on gnulib's pthread module (Eric Blake) - rpmbuild: add ebtables & ip(6)tables dependency for rpm (Stefan Berger) - lxc: Use virDomainFindByUUID for domain lookup (Jiri Denemark) - nwfilter: skip some interfaces on filter update (Stefan Berger) - pass info where request stems from to have rules applied (Stefan Berger) - dnsmasq.c: Fix OOM error reporting (Matthias Bolte) - autobuild.sh: provide default prefix (Eric Blake) Cleanups: - lxc: Change VIR_ERROR to VIR_DEBUG for just a debugging message (Ryota Ozaki) - phyp: reduce scope of driver functions (Eric Blake) - Fix test case failure due to missing -nodefconfig (Daniel P. Berrange) - esx: Use bool instead of int where appropriated (Matthias Bolte) - Cleanup some LIBADD and CFLAGS (Matthias Bolte) - virsh: remove a doubled up include for errno.h (Justin Clift) - Misc cleanups (Jiri Denemark) - Remove unnecessary check for non-NULL uuid (Jiri Denemark) - qemu: reduce file padding requirements (Eric Blake) - virsh: change printf() calls to vshPrint() (Justin Clift) - phyp: sed cleanups (Eric Blake) - maint: simplify some ignore files (Eric Blake) - avoid syntax-check failure (Jim Meyering) - autobuild.sh: avoid bashism (Eric Blake) - bitmap: reject zero-size bitmap (Eric Blake) - build: depend on correct file (Eric Blake) - build: make cpp indentation conform (Jim Meyering) - hooks: fix typo (Paolo Smiraglia) - build: silence cppi warning, clarify vbox headers (Eric Blake) - xen: Remove unused function (Cole Robinson) - esx: Simplify goto usage (Matthias Bolte) - Use printf instead of echo -e in libvirt.spec.in (Matthias Bolte) - build: fix HTML errors in nwfilter docs (Eric Blake) - build: fix compilation without macvtap (Eric Blake) - tests: avoid new failure of the daemon-conf test (Jim Meyering) - storage: mpath: Fix incorrect VIR_ERROR use (Cole Robinson) - Allow nwfilter functions to be compiled with C++ (Chris Lalancette) - storage: Combine some duplicate code (Cole Robinson) - storage: mpath: Clean up some error handling (Cole Robinson) - Remove dead code after refactoring qemudDomainStart (Jiri Denemark) - build: fix cppi warnings (Eric Blake) - Remove isValidIfname. (Chris Lalancette) - Refactor qemudDomainStart (Jiri Denemark) - Factor out def assignment to existing domain from virDomainAssignDef (Jiri Denemark) - Refactor qemudDomainRestore (Jiri Denemark) - maint: don't mark VIR_DEBUG or VIR_DEBUG0 diagnostics for translation (Jim Meyering) - maint: more of same, but manual: convert VIR_ERROR("%s" to VIR_ERROR0( (Jim Meyering) - maint: VIR_ERROR/VIR_ERROR0: mark up the remaining ones manually (Jim Meyering) - maint: mark translatable string args of VIR_ERROR (Jim Meyering) - maint: mark translatable string args of VIR_ERROR0 (Jim Meyering) - maint: use VIR_ERROR0 rather than VIR_ERROR with a bare "%s" (Jim Meyering) - qemu: Remove explicit VNC XML cleanup (Cole Robinson) - Rename qemuBuildCommandLine tapfds -> vmfds. (Alex Williamson) - initialize "meta" in virStorageFileGetMetadata, not in each caller (Jim Meyering) - (qemu*DiskCgroup): avoid dead code (Jim Meyering) - maint: more VIR_WARN corrections: now manually (Jim Meyering) - maint: use VIR_WARN0("...") rather than VIR_WARN("%s", "...") (Jim Meyering) - maint: remove _(...) from VIR_WARN arg manually (Jim Meyering) - maint: don't mark VIR_WARN or VIR_WARN0 diagnostics for translation (Jim Meyering) - do not ignore qemuMonitorAddDrive failure; make uses identical (Jim Meyering) - ebtablesAddRemoveRule, iptablesAddRemoveRule: don't skip va_end (Jim Meyering) - linuxNodeInfoCPUPopulate: avoid used-uninitialized via a test (Jim Meyering) - lxcFreezeContainer: avoid test-after-deref of never-NULL pointer (Jim Meyering) - Remove debugging fprintf() calls (Daniel P. Berrange) - tests: use GPLv2+, not GPLv3 (Jim Meyering) - tests: adjust copyrights on scripts: s/FSF/Red Hat/ (Jim Meyering) - virsh: fix a typo in a diagnostic (Jim Meyering) - delMacvtap: typo fix (Eric Blake) - docs/Makefile.am: remove unnecessary subshells (Eric Blake) - maint: avoid spurious output if program not present (Eric Blake) - storage_encryption: silence clang warning (Eric Blake) - maint: whitespace cleanups (Eric Blake) - qemu: Fix warning about a non-literal format string (Matthias Bolte) - build: drop more redundant configure checks (Eric Blake) - build: silence a clang false positive (Eric Blake) Thanks to everybody who helped for this release by contributing changes or reporting issues ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/