Ideas: Google Summer of Code 2010

This page holds all the ideas suggested by community members for the Last review: link indes.html[Fedora Summer Coding 2010] program.

Scroll to the bottom of this page for all the pages in the 2010 ideas category.


  1. Think in terms of use cases.

    :: If you provide a use case and some ideas of how to solve, you give more room for students to put in their own ideas and passion.
    Consider if that is possible for each of your project ideas.

  2. Prepare a project idea page, part of which is included on this page.

    :: To learn how to add an idea to this page, read How to create an idea page for Summer Coding.

Idea page sample


Summary of idea:





Status: "Idea"

Summary of idea: Add features to the libyahoo2 messaging protocol library

Contacts: Siddhesh Poyarekar

Mentor(s): Siddhesh Poyarekar

Notes: A brief list of features that are currently needed:

  • Webcam support

  • Voice support

  • Yahoo! Chat room support

KDE Netbook Spin

Status: Accepting Applications

Summary of idea: The creation of an official KDE Netbook Edition Spin for Fedora 14

Contacts: Ryan Rix < rrix >, rrix on

Mentor(s): Ryan Rix rrix on, Jaroslav Reznik jreznik on

Welcome Wizard

Status: Idea

Summary of idea: A step by step process of joining the Fedora Project.

Contacts: Mike McGrath

Mentor(s): Mike McGrath

Notes: Right now when new users sign up for an account, they have NO idea what to do next. One common thing is applying for a bunch of seemingly random groups, then trying to ssh to fedorapeople. Then just having your applications sit there…​ forever never getting approved.

I’d like for the account system to have a simple wizard interface (via a plugin), welcomes users, explains how Fedora works and explains how to apply for groups and what to expect. We may have to come up with a standard way to apply for groups, to be discussed.

PackageDB Enhancements

Status: Proposed

Summary of idea: The Fedora PackageDB contains information that both developers and end users would find useful about the applications and packages in Fedora. There are a large variety of changes that could be useful for it ranging from the mundane (example: porting to TurboGears2, adjusting the way we link between the Application and Package interfaces) to redesigning the database model, or including new features.

Contacts: Toshio Kuratomi

Mentor(s): Toshio Kuratomi

Notes: Some ideas are listed on


Status: Proposed

Summary of idea: Copr (Cool Other Package Repo) is a Fedora project to help make building and managing third party package repositories easy. Copr is being implemented this summer by Seth Vidal and Toshio Kuratomi. They would welcome help from interested students.

Notes: :

Gnome - Nautilus Search dialog

Status: Idea

Summary of idea: Nautilus is the default file manager for Gnome desktop. The current state of the search dialog is suboptimal, our goal is to make it more rich and provide more options. For example, when we had set Tracker as the primary search engine, we also committed users to use their fulltext search by default. An option switching between filename-based matching and fulltext search would be great addition. Additional filters would also be a great asset.

Contacts: Tomáš Bžatek

Mentor(s): Tomáš Bžatek

Notes: See upstream bug for details


Status: Idea

Summary of idea: Various ideas related to CHASM

Notes: CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution, is a project that is to help alleviate a lot of the pains that mirrors have in organizing and verifying their content. The project can be thought of as a stateful rsync daemon in some respects, and solves a problem that and a number of other large mirroring infrastructures have been looking into for several years now. This is ultimately a project that will be used by a greater portion of the larger mirroring infrastructures and as such has a lot of need for high performance and good design.


Status: Proposed

Summary of idea: The proposed work is to write the GTK GUI for Digital Gate Compiler (DGC) to use the latest GTK+ 2.0 API. This is Fedora Electronic Lab ticket #73:

Contact: Shakthi Kannan , "mbuf" at

Mentor(s): Shakthi Kannan , "mbuf" at



Status: Proposed

Summary of idea: Improvements to Infinispan project (

Contacts: Manik Surtani

Mentor(s): Manik Surtani

Notes: Ideas are

  • ISPN-272 Recover from transaction failures

  • ISPN-127 Ability to bring up/take down nodes based on SLAs

  • ISPN-374 Add event handling to HotRod

  • ISPN-57 Support Google App Engine

  • ISPN-200 Distributed queries

  • ISPN-262 Geographically distributed data grid

  • ISPN-263 Handle MERGE events to deal with split brains

Please check details at the Student/Contributor Projects with Infinispan wiki page at

Seam Framework

The main page for this idea is

Status: Proposed

Summary of idea: Improvements and new features to seam Framework (

Contacts: Pete Muir

Mentor(s): Pete Muir

Notes: Ideas are

  • JBoss ESB integration with CDI

  • Errai (GWT) integration with CDI

  • Errai (GWT) integration with CDI events

  • Errai (GWT) integration with Seam Security

  • Extensible project management tooling environment (based on Maven and Maven Archetypes)

  • Conversations with remote EJBs

Please check details at the Student Projects wiki page at

FSoC - Four Seasons of Code

Status: Proposed

Summary of idea: Student Project Management System

Contacts: Shreyank Gupta , Shrink on

Mentor(s): Shreyank Gupta

Notes: The idea is to develop an application which would allow Mentors and Students to collaborate effectively and get the process of mentoring automated.

Kronikarz - Simple Tool for Desktop Backup / Restore

Status: "Idea"

Summary of idea: Handy graphical tool for archiving settings of desktop applications. This tool will be useful for users who:

  • want to simply backup / restore look-and-feel and settings of desktop applications;

  • frequently migrate from one distribution to another;

  • have more then one device and want to sync settings.

Contacts: Alexei Panov

Mentor(s): Alexei Panov

Notes: Tool can be written to work with plugins (preferrable) or just bunch of configuration files to describe backup / restore / sync methods and enable support for certain application.

Proposed features:

  • Easy search and select installed applications for backup / restore / sync

  • Can work as application or as daemon

  • Has scheduler and backup / restore / sync settings (archive type, passwords, compression rate, additive/solid, etc.)

  • Custom selection of applications for archiving (one, group, all, etc.)

  • Restoring data from archive with tracking of current application, nonexistent on target machine applications should be reinstalled from PackageKit

  • Including user selected files in archive for restoring on target machine (possibly searching and automatic including configuration files or files of specified types).

Unified Mobile Sync

Status: Idea

Summary of idea: Synchronization tool for mobile devices. The creation of tool for data synchronization between mobile devices and desktop, such as contacts, calendar, schedule, tasks, messages. Today mobility is a major trend, so enabling synchronization between mobile and desktop is important for Linux desktop adoption.

Contacts: Alexey Vasyukov

Mentor(s): For the moment Alexey Vasyukov

Notes: Proposed features:

  • Synchronization of contacts and calendar (required), tasks and messages (desired)

  • Support for popular mobile devices, simple extensibility for new gadgets via plugins

  • Support for popular desktop applications, simple extensibility for other via plugins

  • Simple graphical synchronization tuning tool – what to synchronize, scheduling, rules (filters, conflict resolution, etc.)

  • Enabling mobile device backup and restore

  • Desirably running not only on Linux, but also on Windows and MacOS (TBD)

  • Think about future integration with open source collaboration suites and unified communication systems.

Current state

The current stage (stage 1) is about research and architecture design. It can not be stuck to certain technologies. You need a broad vision of different technologies to be successful at this stage.

Current stage will take at least 2-3 months. After it we will determine coding tasks and timeline and proceed to stage 2 - prototype implementation.

The tasks for current stage:

  • Find out how to upload/download to/from popular mobile devices (Android, iPhone, Symbian, PalmOS, Win Mobile, BB, etc) contacts, messages, calendars, todos, media content, etc. It includes studying what data is accessible, in what format we are to process it, what protocols-libraries-APIs should be used. As a result we should get clear understanding what and how can be synced for different devices. This task will require gathering and reading tons of technical documentation and writing code to check if documentation is really true. I can not predict what programming languages, libraries, standards and protocols you will encounter.

  • Find out how to upload/download to/from popular desktop apps (Evolution, Thunderbird, KDE PIM, Outlook, etc) contacts, messages, calendars, todos, media content, etc. Once again, it includes studing what is accessible, in what format, via which channels. As a result we should get clear understanding what and how can be synced with different apps. This task will require, similarly with the previous one, reading documentation and writing tests. Once again, I can not predict what programming languages, libraries, standards and protocols you will encounter.

  • Find out how to integrate mobile sync into current system infrastructure for Linux desktop (dbus, udev, PackageKit, etc) and, probably, Windows desktop (???). This task will require very good knowledge of system design.

  • Prepare concept of GUI application and implement the first version (with placeholders instead of real sync plugins). This task will require knowledge of cross-platform programming with Python or C/C++ and GTK/Qt/etc. Knowledge of GUI design and usability will be a big advantage.

  • Prepare the architecture based on the results of tasks #1-4. The architecture should meet the requirements [1]. Determine tasks for complete UMS implementation.

From my point of view each of the tasks #1-4 will require few person-months. Task #5 will be solved collaboratively.

KDE fingerprint support for various components

Status: Idea

Summary of idea: The aim of this project is to finish fingerprint support for various KDE core components and package it for Fedora. The current code supports KDM login & KDE locking and sits in KDE SVN playground. Support to other KDE componenets have to be done - Polkit KDE auth. agent, kdesu etc. Code should be accepted by upstream and should go through KDE review to be shipped in official KDE SC releases.

Mentor(s): Jaroslav Reznik & KDE SIG

KDE Usability recording tool

Status: Idea

Summary of idea: Usability engineers regularly administer usability sessions. Within these sessions there are a number of things that they need to record:

The three most notable are the screen of the user being tested

  • An external camera source

  • An external microphone

These must be compressed and multiplexed together, compressed. The tool must be able to open these files, export them to other more conventional types, i.e. an OGG simply of the users screen.

Mentor(s): Jaroslav Reznik, Lukas Tinkl & mentor @ university

Notes: for FIT BUT/FI MUNI students only

GNU Smalltalk package revamping

Status: Idea

Summary of idea: The GNU Smalltalk virtual machine is a monolithic package in Fedora, and is not updated often. By contrast, the Debian package separates all of the provided bindings into separate packages, which allows to install the VM with fewer dependencies—for example without GTK+ support, or without Expat, and so on.

The project aims at providing a similar level of flexibility for the Fedora package. In addition, it would be good to have a way to generate from the same source the Fedora .spec file, the Windows installer (currently done with a custom shell script that uses the Fedora mingw32 cross-compilation environment), and the Debian package.

Contacts: Paolo Bonzini

Mentor(s): Paolo Bonzini

Unified ink level reporting

Status: Idea

Summary of idea: Several printer drivers are capable of reporting the amount of remaining ink or toner in the printer they are driving, but they all do it in different ways. Usually there is a command line program that the user has to know about and run (and interpret the output). For gutenprint there is escputil. For HPLIP there is hp-levels. And so on.

CUPS provides a unified framework for all drivers to report marker levels in the same way, viewed and queried from a single user interface. The same interface can be used for other "special" functions such as cleaning/aligning the print heads, printing a self-test page, etc. We just need the printer drivers to conform to this way of doing things.

Changing both gutenprint and hplip would be sufficient to cover a large number of printer models.

Contacts: Tim Waugh

Mentor(s): Tim Waugh

Customizable application installer

Status: Accepting Applications

Summary of idea:

Ailurus is an application installer [1]. It lists specific software for specific task. It lists few software, rather than all packages in Fedora repository. It helps new users because new users can find out software they want directly, rather than do searching in a lot of packages. Many Fedora users are using Ailurus now.

Our goal is to make Ailurus customizable. For example, users can add comment for software. Software introduction can be changed. New software items can be added. Existing software items can be removed. Under the user’s permission, the changes to the software items can be uploaded to a web service on google app-engine, therefore other users will obtain a benefit by downloading the changes. This application installer supports extensions. Users can add their own function.

Contacts: Homer Xing

Mentor(s): Homer Xing

Gnome File Sharing Administration Tool

Status: Idea

Summary of idea: KDE has taken an advance on file sharing which is Kcm-filesharing by allowing the user list all samba/nfs shares and allow the user to configure the shares centrally and graphically, while which is required but not supplied by Gnome. The proposed project aims to create a utility that should provide a graphical administration tool to configure both samba system shares and nfs shares. It is able to manage the file sharing management, authentication, and other most worthy configurations of samba and nfs.

Contacts: Yang Jie

Mentor(s): looking for a mentor


Status: Proposed

Summary of idea:

The idea is to have an inline DocBook XML editor in Zikula (or the Fedora instance of Zikula).

The preliminary tasks are to:

  1. Enable Zikula setup with DocBook support.

  2. Enable wiki-like editing setup that can support revisions too

  3. Enable XSL support for parsing of docbook to and from html




Status: "Idea"

Summary of idea: Add features to the libyahoo2 messaging protocol library

Contacts: Siddhesh Poyarekar

Mentor(s): Siddhesh Poyarekar

Notes: A brief list of features that are currently needed:

  • Webcam support

  • Voice support

  • Yahoo! Chat room support

Fedora Musicians' Guide

Status: Idea

Summary of idea: The goal is to produce a document like the User Guide, but focussed on applications that might be used by musicians. A broad range of applications and application types will be covered, including the installation and use of software from Planet CCRMA (

Contacts: Christopher Antila

Mentor(s): Rlandmann and AnthonyGreen

Freeseer portable presentation/demo capture station

Status: Proposed

Summary of idea:

Freeseer is a portable presentation capture tool. It captures vga output/firewire/webcam/local desktop and audio and mixes them together to produce a video thus enabling you to capture great presentations, demos, or training material easily. The ideas for this project implement various features to improve the Freeseer video capture software.

Contacts: Andrew Ross


Status: Proposed

Summary of idea:

Dorrie is a Web interface to build customized Fedora Remixes. It is a Free Software licensed under the GNU Affero General Public License v3 or later and written using Django/Python.

Contacts: Shreyank Gupta

Mentor(s): Shreyank Gupta


Universal Build-ID

Status: "Idea"

Summary of idea: Extend the Build-ID support to make it more universally usable.

Notes: This is not a completely worked out idea yet. A proposal should pick one or more scenarios and create a concrete implementation plan.

Shotwell slideshows/printing

The main page for this idea is .

Status: Proposed

Summary of idea: Shotwell is the default photo manager in Fedora 13. Yorba (the open source group that develops Shotwell) is looking for students interested in working on two different aspects of Shotwell this summer.

First, slideshows. Today, Shotwell’s slideshows are primitive: photos are simply displayed in succession with no transitions of any sort. We’d like to implement fancier slideshows with cool-looking transitions. If time permits, it would be great to add captions and/or music to slideshows as well.

Second, printing. Today, printing in Shotwell is basic: you can simply print one photo per page on a white background. We’d like to let the user print multiple photos per page, choose fancy borders and background colors and so on.

Contacts: Adam Dingle