qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] RFC: Qemu Guest Tools ISO
@ 2011-06-22 18:55 Michael Roth
  2011-06-23  9:29 ` Alon Levy
  2011-06-23 11:14 ` Ronen Hod
  0 siblings, 2 replies; 15+ messages in thread
From: Michael Roth @ 2011-06-22 18:55 UTC (permalink / raw)
  To: qemu-devel@nongnu.org Developers; +Cc: bsarathy, Anthony Liguori, pmyers, agl

Goal:

Provide a mechanism, similar to vmware and virtualbox guest tools ISOs, 
that allows us to easily distribute guest tools (and potentially 
drivers) for linux and windows guests.

Advantages (rough list to start the discussion, feel free to add/comment):

- Simplify deployment of guest additions. ISO-installable additions can 
be pulled from QEMU/KVM/virtio/etc upstream or external projects as 
needed rather than worked into distros as independent packages. Users do 
not need to worry about installing lists of packages for full support. 
Pre-made ISOs can be pulled into QEMU/KVM in a manner similar to 
BIOSs/option roms.

- Reduce complexity involved with needing to manage guests with 
outdated/missing tools or drivers. No need to rely on distros to pull 
drivers/features/bug fixes from upstream before relying on them; we can 
assume these fixes/features are immediately available from an upstream 
perspective, and distros can still maintain compatibility within a 
distro-centric environment by shipping specific versions of the guest 
tools ISO (hopefully the version committed to qemu.git at time of rebase 
or newer)

- Simplify updates: Hypervisor can push guest tools updates by building 
QMP/guest agent interfaces around an ISO.

- Extend support to older guests (and windows) where new repo packages 
are not a realistic option.

- ?

Disadvantages:

- Need to test changes to tools against supported distros/platforms 
rather than punting to / or leveraging distro maintainers. KVM Autotest 
would likely be a big part of this.

- Potentially less integration from a distro-centric perspective. 
Upstream mandates guest tools, distros need to keep up or rebase to 
remain in sync. Can still elect to support specific versions of a guest 
tools ISO, however.

- ?

Implementation:

I hope to follow-up in fairly short order with a basic prototype of the 
tools/workflow to create/install a guest additions ISO. A rough overview 
of the approach I'm currently pursuing:

- Use PyInstaller (built around pye2exe, linux/windows compatible, with 
logic to pull in required shared libs and windows/tcl/cmd.exe support as 
needed) to generate executables from python scripts.

- Each project exists as a free-form directory with source code, or 
32/64 bit pre-compiled binaries, windows-based installers, etc. To add 
to an ISO a symlink to this directory would be added along with a python 
installer script which accepts arch/distro as arguments. 
install/update/uninstall logic handled completely by this install script.

- Top-level installer will iterate through guest additions projects and 
execute installers in turn. (some basic dependency support or explicit 
ordered may be needed).

- Install scripts (top-level and per-project) will be run through a set 
of scripts built around PyInstaller to generate a group of executable 
installers for linux as well as for windows (installers can be 
do-nothings for unsupported platforms, or simply call out to other 
binaries if using, say, an MSI windows installer). Both will co-exist on 
the same ISO, and share the top-level projects directory containing the 
individual code/binaries for individual projects.

Thoughts?

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-06-27  0:24 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-22 18:55 [Qemu-devel] RFC: Qemu Guest Tools ISO Michael Roth
2011-06-23  9:29 ` Alon Levy
2011-06-23 11:08   ` Stefan Hajnoczi
2011-06-23 11:38     ` Daniel P. Berrange
2011-06-23 14:46       ` Michael Roth
2011-06-23 12:00     ` Avi Kivity
2011-06-23 14:54       ` Michael Roth
2011-06-23 15:09         ` Avi Kivity
2011-06-23 15:50           ` Michael Roth
2011-06-23 15:25       ` Anthony Liguori
2011-06-23 15:52         ` Avi Kivity
2011-06-27  0:24           ` Natalia Portillo
2011-06-23 11:31   ` Jan Kiszka
2011-06-23 14:41   ` Michael Roth
2011-06-23 11:14 ` Ronen Hod

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).