GSoC/GCI Archive
Google Summer of Code 2009

The Linux Foundation

Web Page:

Mailing List: See the mailing lists of the workgroups on the project ideas page

The Linux Foundation is a nonprofit consortium dedicated to fostering the growth of Linux. Founded in 2007 as a merger of the former Free Standards Group (FSG) and the former Open Source Developer Lab (OSDL), the LF sponsors the work of Linux creator Linus Torvalds and is supported by leading Linux and open source companies and developers from around the world. The Linux Foundation promotes, protects and standardizes Linux by providing unified resources and services needed for open source to successfully compete with closed platforms. More: All software produced by us is free software published under OSI-approved licenses. See project ideas page for the license used by each project.


  • AP mode support for Network Manager Since the 2.6.29 version, Linux kernel supports the Access Point mode for mac80211 drivers. However, there is no simple GUI tools available, which would let users set their own AP easily. This project purpose is to add the AP mode support to NetworkManager using hostapd or wpa_supplicant. That will require creating a suitable dbus interface for hostapd or moving hostapd's functionality to wpa_supplicant. GUI tools for managing the Access Point mode will be delivered too.
  • Common Print Dialog The goal is to complete the KDE4 implementation of the Common Print Dialog specification (taking into account some anticipated specification changes) and patch applications to support the dialog's D-Bus API. This is a continuation of the work Lars and I did during the previous SoC.
  • Finalize the common dialog designed by OpenUsability In the OpenPrinting project the goal is to complete the previous implementation of the common printing dialog in at least one toolkit. This involves continuing the effort to be compliance with the dialog specification written by OpenUsability.
  • IEC 68831-6 support for the new FireWire stack IEC 68831-6 (AMDTP) is the standard for most (semi-) professional FireWire audio interfaces. Currently, support in Linux for such devices is provided by the FFADO daemon, which relies on libraw1394 library. This project sets the goal of partly moving into the kernel (as a FireWire driver with an ALSA interface) what FFADO currently implements in userspace. THe impact: huge! It will push Linux even further in becoming a top choice as a music recording and production platform!
  • Kevin Seitz's OpenPrinting Application I am applying for the OpenPrinting driver management project. I am interested in developing web applications and have gained experience developing them through various projects I have worked on. I expect this project to be a little challenging for myself, but also a valuable learning experience and a way to put my skills to good use.
  • Make OpenJDK LSB Compliant Including Java as a mandatory component in the LSB (similar to the support of Perl and Python) has been difficult due to some non-technical issues. I recognize the importance of Java and would like to provide a pathway for Java application to become LSB certified. Therefore, the creation of an LSB certifiable JRE is very important to community and a number of Java application providers. My aim in this project is to patch source code and building scripts of OpenJDK for it to become LSB compliant.
  • OpenPrinting: Making the web-based application for browsing the database less resource consuming using a PHP/MySQL architecture OpenPrinting provides and manages the Foomatic Database which is a central store for printer drivers and is available under the /usr/share/foomatic directory. The current website of OpenPrinting is completely designed based on CGI scripts written in Perl and the various printer & driver configurations are stored in the Foomatic XML format maintained using a BZR VCS on the server. The server faces a lot of hits everyday as people search for the best driver for their printer and this causes a huge overload as CGI processes are created and executed per request generated. The idea is to completely change the architecture of the web-service by layering off things into presentation, service and database levels. The MySQL DB handles all the metadata for each of the printer and driver entries while the service layer polls and inserts data from the DB or from memcached which is an object caching system ( The web page presentation is maintained using smarty templates ( and javascript. Authentication is setup using LDAP to customize access to different parts of the website. Perl and PHP CLI are used to create cron jobs that automate the build of the printer XML DB.