On Fri, 2009-05-29 at 10:43 +0100, Mark McLoughlin wrote:
The more I think about it, no matter how much linear ABI versioning
sucks, it's possibly the only way to solve this in a reasonably usable
manners. Distros would just have to suck it up and agree that if they
cherry-pick an ABI changing patch, they must update the entire ABI to
the newer upstream ABI version.
Okay, how about this:
- Add a saveabi monitor command
- Whenever libvirt starts a guest or hotplugs a device, it executes
saveabi and retains the output
- The abi can be restored with qemu -loadabi or the loadabi monitor
command
- The abi file doesn't describe the device model, it merely gives
hints for building the device model which is described on the
command line
- If the abi file contains details of a device which is not listed on
the command line, it's just ignored and not included in the next
saveabi
- If the abi file is missing details of a device which is listed on
the command line, the device is constructed using the defaults and
included in the next saveabi
- This means the abi file is opaque to the management tools - unlike
the machine config file, libvirt would not need to modify it when
devices are added or removed by the user