Summer of Code projects for GNU

This page has the project suggestions for GNU's participation in Google Summer of Code 2009. (Project proposals for 2006, 2007, and 2008 are archived.)


Please read the GNU Project's guidelines for Summer of Code projects.

Most importantly, please make sure you include all the information requested. If you have questions, please ask

Project suggestions

The ideas here are listed in alphabetical order by project. Many projects have more than one suggestion.

- classpath - clisp - dotgnu - gdb - gdb-mi/emacs - gnowsys - gnucap - gnunet - hurd - libcdio - myserver - screen - shell debuggers/emacs -


Please see this separate page for GNU Classpath.

CLISP embedding

GNU CLISP can used as an embedded system. If you would like to work on adding it to another program, the GNU CLISP maintainers are happy to help mentor that. You should also talk to the maintainers of the target package, of course. Whether they or GNU would be the principal mentors and which organization the project would be run under will depend on the details. On the GNU side, please contact Sam Steingold (CLISP maintainer) via our general mailing list

DotGNU: Portable.NET Just-In-Time compiler and libJIT


Please see GDB's separate page for project suggestions and mentors.

GDB/MI and Emacs

Migrate the GDB graphical interface in Emacs to completely use GDB/MI (GDB's Machine Interface).

Currently the underlying Lisp package, gdb-ui.el, uses a mixture of annotations and GDB/MI to interact with GDB. Annotations are being deprecated and GDB/MI provides a more robust interface, as well as supporting the new features of GDB. There is currently a package called gdb-mi available from the Emacs Lisp Package Archive that fully uses GDB/MI but does not have all the features of gdb-ui.el. It could be used as a starting point and, if the project is successful, it is anticipated that the resulting code would replace gdb-ui.el after the release of Emacs 23.1. See or post to for more information.


For all these projects, the candidate should know Python and XMLRPC.

Contact: <Nagarjuna G.>.


Please see the Gnucap project's separate page for project suggestions and mentors.

GNUnet and GNU libextractor

GNUnet is GNU's P2P system. It is designed as a framework and does not use any centralized or otherwise trusted services. A first service implemented on top of the networking layer allows anonymous censorship-resistant file-sharing. All link-to-link messages in the network are confidential and authenticated. The framework provides a transport abstraction layer and can currently encapsulate the peer-to-peer traffic in UDP, TCP, HTTP or SMTP messages.

GNU libextractor is a library used to extract meta-data from files of arbitrary type. The goal is to provide developers of file-sharing networks or WWW-indexing bots with a universal library to obtain simple keywords to match against queries.

The team would like to receive students' own ideas on how to improve both projects (including of course the subprojects gnunet-gtk and gnunet-qt). Talk to us! You can find us on the IRC channel #gnunet and on the gnunet-developers mailing list.

GNU Hurd

Please see the GNU Hurd project's separate page for project suggestions and mentors.


You can find us on the libcdio-devel mailing list.


MyServer is a powerful and easy to configure web server. If you would like to add WebDAV support or develop a GUI application that can be used to easily manage the server, please contact us on the general mailing list

screen - embedded scripting support

GNU Screen currently does not support any kind of scripting. However, with the wide array of tasks that it is used for, some scripting support will help users to use screen in a much more effective and efficient manner. For example:

Some rudimentary proof-of-concept implementation for scripting support has been done. We are looking for interested students to complete this task. The student will need to design the interface between screen and the scripting module(s), and implement at least one module for a scripting language of the student's choice (e.g. guile, lua, python, perl etc.).

Interested students are welcome to discuss this, or other interesting ideas for GNU Screen on the screen-users mailing list.

shell and script debuggers and Emacs

In the last couple of years, a large number of Integrated Development Environments (IDE's) has emerged. So far, none has come close to the editing capabilities of Emacs, but on the debugger side, Emacs has been surpassed.

As many people still use Emacs as their preferred editor, an ideal situation would be that Emacs also would be used as a debugger front-end with windows for, say, the call stack, local variables, and breakpoints.

Some work in this area has been done, most notably gdb-ui.el, which provides a multi-window debugging environment for C and C++ and gdb. In addition, the ruby-debug project is doing similar work for Ruby.

This project would:

For more information, contact R. Bernstein and Anders Lindgren.

Submitting ideas to this page