Google Summer of Code 2016

From Libvirt Wiki
Revision as of 11:05, 27 January 2016 by Mprivozn (talk | contribs) (Project ideas)
Jump to: navigation, search

Google Summer of Code 2016


Like in the previous years, libvirt is willing to apply for Google Summer of Code 2016. This page serves to collect ideas and informations for both students and mentors. But this year we have decided to try applying as a separate organization, because the number of libvirt applicants simply grew higher than qemu or kvm combined. So it wouldn't be fair if we continued outsourcing program management onto qemu project. Hopefully, this has no effect on students nor mentors.

NOTE: The mentoring organizations have NOT been chosen yet, so please take this list as non guaranteed yet.


Firstly, there were some important changes in rules. Be sure to read them first. On the top of those we have some additional guidelines as follows.

Each student can sign up for as many ideas listed here as they want. With each candidate respective mentor will do an interview (usually through IRC) consisting of a coding exercise and some follow up questions to evaluate their ability to code. Some examples of exercises from previous years can be found here.

Additional information

This page is meant to extend qemu page dedicated to GSoC: [1].


  • IRC (GSoC specific): #qemu-gsoc on
  • IRC (development and general): #virt on
  • libvir-list

Please contact the respective mentor for the idea you are interested in. For general questions feel free to contact me: Michal Prívozník (IRC nick: mprivozn).

Project ideas

Here is the list of libvirt ideas. If an idea involving work in both libvirt and qemu appears it should be listed here and on qemu list too.

Introducing job control to the storage driver

Summary: Currently, libvirt support job cancellation and progress reporting on domains. That is, if there's a long running job on a domain, e.g. migration, libvirt reports how much data has already been transferred to the destination and how much still needs to be transferred. However, libvirt lacks such information reporting in storage area, to which libvirt developers refer to as the storage driver. The aim is to report progress on several storage tasks, like volume wiping, file allocation an others.

  • Component: libvirt
  • Skill level: intermediate
  • Language: C
  • Mentor: Michal Privoznik <>, mprivozn on IRC (#virt OFTC)
  • Suggested by: Michal Privoznik <>

Making virsh more bash like

Summary: If you have ever used virsh, you certainly reached the point where you stuggle with its user friendliness. Or unfriendliness I should rather say. Virsh is missing a lot of bash functionality that users consider natural: from automatic completion of object names, through redirecting command outputs through piping commands together. The aim would be to make these functions available in virsh and thus make user experience better.

  • Component: libvirt
  • Skill level: Advanced
  • Language: C
  • Mentor: Michal Privoznik <>, mprivozn on IRC (#virt OFTC)
  • Suggested by: Michal Privoznik <>

Abstracting device address allocation

Summary: There are many types of addresses that devices can have in libvirt's XML description. Not all address types are properly assigned and checked for duplicates. The goal of this is to have an abstract data structure that would handle assigning all kinds of addresses, handle duplicates, etc.

  • Component: libvirt
  • Skill level: beginner
  • Language: C
  • Mentor: Michal Privoznik <>, mprivozn on IRC (#virt OFTC)
  • Suggested by: Martin Kletzander <>


=== TITLE ===
 '''Summary:''' Short description of the project
 Detailed description of the project.
 * Wiki links to relevant material
 * External links to mailing lists or web sites
 * Skill level: beginner or intermediate or advanced
 * Language: C
 * Mentor: Email address and IRC nick
 * Suggested by: Person who suggested the idea