From Fedora Project Wiki
(Created page with '{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To rea...')
 
(Back to 100%, the bug has been fixed and a workaround exists for now)
(33 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section.  They are invisible when viewing this page.  To read it, choose the "edit" link.<br/> '''Copy the source to a ''new page'' before making changes!  DO NOT EDIT THIS TEMPLATE FOR YOUR FEATURE.'''}}
= Spice =
 
{{admon/important | Set a Page Watch| Make sure you click ''watch'' on your new page so that you are notified of changes to it by others, including the Feature Wrangler}}
 
{{admon/note | All sections of this template are required for review by FESCo.  If any sections are empty it will not be reviewed }}
 
 
<!-- All fields on this form are required to be accepted by FESCo.
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
 
<!-- The actual name of your feature page should look something like: Features/YourFeatureName.  This keeps all features in the same namespace -->
 
= Feature Name <!-- The name of your feature --> =


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Spice aims to provide a complete open source solution for interaction with virtualized desktops


== Owner ==
== Owner ==
<!--This should link to your home wiki page so we know who you are-->
* Name: [[User:alexl| Alexander Larsson]]
* Name: [[User:FASAcountName| Your Name]]
* Email: alexl@redhat.com


<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
== Current status ==
* Email: <your email address so we can contact you, invite you to meetings, etc.>
* Targeted release: [[Releases/14 | 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


== Current status ==
== Detailed Description ==
* Targeted release: [[Releases/<number> | Fedora <number> ]]
The Spice project deals with both the virtualized devices and the front-end.
* Last updated: (DATE)
 
* Percentage of completion: XX%
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.


<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
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)


== Detailed Description ==
Red Hat acquired Spice together with kvm when it aqcuired Qumranet, and has invested significant effort into opening it up, cleaning up dependencies, etc.
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


== Benefit to Fedora ==
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
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 ==
== Scope ==
<!-- 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
* 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 [[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 [[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
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 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 ==
== How To Test ==
Line 53: Line 74:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
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 ==
== User Experience ==
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
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 ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
* qemu


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
Drop the qemu patch, stay with current qemu frontends


== 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/features.html spice features]
* [http://www.spice-space.org/documentation.html spice documentation]
* [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.


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/Spice]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->




[[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