From Fedora Project Wiki
(Add a bunch of content)
(Back to 100%, the bug has been fixed and a workaround exists for now)
(28 intermediate revisions by 5 users not shown)
Line 10: Line 10:
== Current status ==
== Current status ==
* Targeted release: [[Releases/14 | Fedora 14 ]]  
* Targeted release: [[Releases/14 | Fedora 14 ]]  
* Last updated: 2010-07-07
* Last updated: 2010-09-16
* Percentage of completion: 0%
* Percentage of completion: 100%
 
* All spice 0.6 packages are done
Spice 0.6 is scheduled to be released in August.
* qemu-0.13.0-0.6.rc1.fc14 has spice support


== Detailed Description ==
== Detailed Description ==
The Spice project deals with both the virtualized devices and the front-end.
The Spice project deals with both the virtualized devices and the front-end.


Currently, the project main focus is to provide high-quality remote access to QEMU virtual machines. The SPICE remote computing protocol that is used for client-server communication. Spice adds a QXL display device to QEMU and provides
Currently, the project main focus is to provide high-quality remote access to QEMU virtual machines. The Simple Protocol for Independent Computing Environments (SPICE) is used for client-server communication. Spice adds a QXL display device to QEMU and provides
drivers for this device for both X and Windows.
drivers for this device for both X and Windows.


Line 41: Line 41:
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
* Spice support needs to be added to the Fedora qemu package
* Spice support needs to be added to the Fedora qemu package
* Need to package celt 0.5.1 as celt051 package (for the specific bitstream format spice uses)
* Need to package celt 0.5.1 as celt051 package (for the specific bitstream format spice uses) [[https://bugzilla.redhat.com/show_bug.cgi?id=612979 bug #612979]] [[https://admin.fedoraproject.org/pkgdb/acls/name/celt051 packages]]
* Need to package spice-protocol
* Need to package spice-protocol [[https://bugzilla.redhat.com/show_bug.cgi?id=612943 bug #612943]] [[https://admin.fedoraproject.org/pkgdb/acls/name/spice-protocol packages]]
* Need to package spice, giving spice-server and spice-client packages
* Need to package spice, giving spice-server and spice-client packages [[https://bugzilla.redhat.com/show_bug.cgi?id=613067 bug #613067]] [[https://admin.fedoraproject.org/pkgdb/acls/name/spice packages]]
* Need to update xorg-x11-drv-qxl package for latest spice version
* Need to update xorg-x11-drv-qxl package for latest spice version
Other (non-mandatory) spice-related bits useful to have in Fedora:
* Spice guest agent for linux [[https://bugzilla.redhat.com/show_bug.cgi?id=613654 bug #613654]]
* [[MinGW|mingw32]] versions of the spice packages for cross-compiling windows apps + drivers on Fedora.
** mingw32-celt051 [[https://bugzilla.redhat.com/show_bug.cgi?id=613993 bug #613993]]
** mingw32-libogg [[https://bugzilla.redhat.com/show_bug.cgi?id=613697 bug #613697]]
** mingw32-spice-protocol [[https://bugzilla.redhat.com/show_bug.cgi?id=614047 bug #614047]]


A common use for spice is to run windows client, and spice ships with several windows parts:
A common use for spice is to run windows client, and spice ships with several windows parts:
* A video driver
* A video driver.
* An agent for doing operations inside the guest
* An agent for doing operations inside the guest.
* virtio serial driver for talking to the agent
* virtio serial driver for talking to the agent.


It might be interesting to package these in fedora somehow so that its easy to deploy them.
It might be interesting to package these in fedora somehow so that its easy to deploy them.  Note that the fedora package guidelines don't allow shipping pre-compiled blobs.  Which implies we must build the windows binaries in mock/koji.  Which implies we must be able to cross-build all bits using the mingw compiler.


== How To Test ==
== How To Test ==
Line 73: Line 80:


To test spice, install a qemu with spice support and spice-server on the server machine, then start qemu with options something like this:
To test spice, install a qemu with spice support and spice-server on the server machine, then start qemu with options something like this:
./qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm
  qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm
or with passwords:
or with passwords:
./qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm
  qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm


On the client, install the spice-client package and start it like:
On the client, install the spice-client package and start it like:
Line 81: Line 88:


This should let you access the machine. You should now install the qxl driver and optionally the agent (only available for windows) in the guest. If you do not do this you're running in vga mode which is quite slow and inefficient.
This should let you access the machine. You should now install the qxl driver and optionally the agent (only available for windows) in the guest. If you do not do this you're running in vga mode which is quite slow and inefficient.


== User Experience ==
== User Experience ==
Line 96: Line 102:


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
* [http://www.spice-space.org/ the main spice website]
* [[http://www.spice-space.org/ the main spice website]]
* [http://www.spice-space.org/features.html spice features]
* [[http://www.spice-space.org/features.html spice features]]
* [http://www.spice-space.org/documentation.html spice documentation]
* [[http://www.spice-space.org/documentation.html spice documentation]]
* [http://www.spice-space.org/page/Releases/SpiceZeroPointSix 0.6 schedule]
* [[http://www.spice-space.org/page/Releases/SpiceZeroPointSix 0.6 schedule]]


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
* Fedora 14 introduces the Spice framework for desktop virtualization. (TODO: say more here)
* Fedora 14 introduces the Spice framework for desktop virtualization.


== Comments and Discussion ==
== Comments and Discussion ==
Line 111: Line 116:




[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF14]] [[Category:F14 Virt Features]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Revision as of 14:20, 16 September 2010

Spice

Summary

Spice aims to provide a complete open source solution for interaction with virtualized desktops

Owner

Current status

  • Targeted release: Fedora 14
  • Last updated: 2010-09-16
  • Percentage of completion: 100%
  • All spice 0.6 packages are done
  • qemu-0.13.0-0.6.rc1.fc14 has spice support

Detailed Description

The Spice project deals with both the virtualized devices and the front-end.

Currently, the project main focus is to provide high-quality remote access to QEMU virtual machines. The Simple Protocol for Independent Computing Environments (SPICE) is used for client-server communication. Spice adds a QXL display device to QEMU and provides drivers for this device for both X and Windows.

Features supported in the protocol are:

  • Accelerated 2D graphics
  • "Hardware" cursor support
  • Audio playing
  • Audio recording
  • Image compression, both lossless and lossy (for WAN support)
  • Video detection with MJpeg streaming
  • Encryption
  • Client side mouse pointer support
  • Drivers for: X, Windows (xp, vista, win7)

Red Hat acquired Spice together with kvm when it aqcuired Qumranet, and has invested significant effort into opening it up, cleaning up dependencies, etc.

Benefit to Fedora

In the long term, Spice will let Fedora provide a better user experience in desktop virtualization. In the short term, Fedora gains an interesting new open-source technology that many people want to try out.

Scope

  • Spice support needs to be added to the Fedora qemu package
  • Need to package celt 0.5.1 as celt051 package (for the specific bitstream format spice uses) [bug #612979] [packages]
  • Need to package spice-protocol [bug #612943] [packages]
  • Need to package spice, giving spice-server and spice-client packages [bug #613067] [packages]
  • Need to update xorg-x11-drv-qxl package for latest spice version

Other (non-mandatory) spice-related bits useful to have in Fedora:

A common use for spice is to run windows client, and spice ships with several windows parts:

  • A video driver.
  • An agent for doing operations inside the guest.
  • virtio serial driver for talking to the agent.

It might be interesting to package these in fedora somehow so that its easy to deploy them. Note that the fedora package guidelines don't allow shipping pre-compiled blobs. Which implies we must build the windows binaries in mock/koji. Which implies we must be able to cross-build all bits using the mingw compiler.

How To Test

The server part of Spice requires a x86-64 machine, and ideally should have hardware virtualization support (kvm) although this is not strictly required.

The client currently works on x86-64 and x86, but we're working on porting it to more architectures.

To test spice, install a qemu with spice support and spice-server on the server machine, then start qemu with options something like this:

 qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm

or with passwords:

 qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm

On the client, install the spice-client package and start it like:

 spicec -h localhost -p 1234 -w <secret>

This should let you access the machine. You should now install the qxl driver and optionally the agent (only available for windows) in the guest. If you do not do this you're running in vga mode which is quite slow and inefficient.

User Experience

The initial version of spice is not integrated with the virtualization management in Fedora (libvirt). We're working on this, but its not expected to happen in F14.

Dependencies

  • qemu

Contingency Plan

Drop the qemu patch, stay with current qemu frontends

Documentation

Release Notes

  • Fedora 14 introduces the Spice framework for desktop virtualization.

Comments and Discussion