GSoC/GCI Archive
Google Summer of Code 2014

GNU Project

License: GNU General Public License version 3.0 (GPLv3)

Web Page:

Mailing List:

The GNU Project ( was launched in 1984 to develop the GNU system.


  • A Graphical User Interface for GNUnet Social The goal of this project is to create a functional Graphical User Interface using a multi-platform desktop framework, providing the basic functionality for Social service of GNUnet.
  • Automated Test Suite This project aims to make a Test Suite for LibreDWG. Currently there are no Test Suite included in the LibreDWG So there is no way to test the functionality of the functions if any amendment is done. This project aims to implement the following: 1) Unit Tests for Functions 2) Ability to check the reading capabilities of LibreDWG
  • DR. Geo DXF Support DXF is a popular format for CAD data storage and support of DXF read write should be provided in Dr. Geo. Aim of this project is to create a DXF Read/Write library in C to be integratable into Dr. Geo, which currently does not support it.
  • Emacs XWidgets The proposal will include details about the Emacs XWidget project. The goal of this project is to improve the current implementation by converting C code to Elisp code and to work on the GObjectIntrospection.
  • GNU Bison support of GLR in C++ GNU Bison currently has a C++ GLR parser that is just a wrapping around the C parser, and thus lacks variants (unions for objects). The support of objects in parsing is thus lacking. I propose a complete re-implementation of the C++ GLR parser to allow for variants.
  • GNU LibffCall - AvCall and Callback Cleanup My GSoC project focuses on two libraries of LibffCall : Avcall and Vcall. Source code of the libraries is pretty abandoned and no proper implementation of autotools. Separate script exist for linking the platform specific code to C, which have to be updated by a single configure script. Man pages are not properly maintained and scripted. Implementation of proper GNU standards as the existing code is a mess. Merging of assemble code into a single file for specific platform needs to be done.
  • GNU LibffCall - Refactoring Trampoline and Vacall library GNU LibffCall Code is written in C & assembly language and there is no technical documentation regarding it, which makes extremely difficult to understand the code. As there is assembly code for different platforms so there is use of different instruction sets, opcode’s and labels which make it a programmer's nightmare. So there is an immediate need of refactoring the code for helping programmers to understand the code for future reference.
  • GNU MediaGoblin: Python 3 port Python 3 is a modern and well designed(e.g. strict unicode handling, new IO stack) language than Python 2. Also, most popular Python projects such as Django, SciPy and Twisted (not all components) already supports Python 3.
  • Gnucap The project aims to build a comprehensive help system and design & develop decisive statements and loop oriented commands to enhance the scripting capability of interpreter in Gnucap.
  • gnucap: Graphic output display program This project aims at creating a new program to display output waveform which can be used interactively with GNUCAP and replace currently used output waveform displayer Gwave . This program is constructed in such a way that it can be extended very easily according to future needs. It uses GTK libraries for GUI development and Python/C++ for writing different plugins and commands.
  • Guile-Emacs Complete the integration of Guile and Emacs.
  • Kawa - Optimize switches (case) Kawa is an implementation of Scheme for the Java platform. Kawa has case constructs implemented as Scheme macros. I would like to implement them at a lower level (i.e. using Java bytecode), to take advantage of Java switch implementation. This can be done with a new class extending Expression, compiling it using the existing gnu.bytecode framework.
  • Mediagoblin: Python 3 port + switch to Alembic Port all of MediaGoblin's code to python 3: Currently MediaGoblin uses sqlalchemy-migrate, but it's fairly outdated and unmaintained. Port the migration infrastructure to using Alembic instead. Which is also python3-compatible.
  • Multicast implementation for GNUnet By building a multicast service for GNUnet, we create the possibility of using GNUnet as the basis for a wide range of low-latency peer-to-peer applications. Examples are a Publish/Subscribe infrastructure, distributed group chat, telephony and other kinds of multiparty collaboration tools.
  • Porting Valgrind to GNU Hurd This project aims to port Valgrind to GNU Hurd. This port involves two major steps: making Valgrind understand how kernel traps work in general on the system in question; and how all the individual kernel calls affect memory. The latter step is where most of the work is, as the behaviour of each single system call needs to be described. A Hurd port will help finding out why certain programs segfault on the Hurd. More importantly, it will help finding bugs in the Hurd servers themselves.
  • Recutils: Adding more importers and exporters to recutils I will be writing utilities to exchange data to and from rec format to other database formats. These utilities will preserve data integrity(wherever possible) and will work like the already existing utilities.
  • Upgrading GNU Dr. Geo The present GNU Dr. Geo software contains the code that is quite old and the libraries it is using are also outdated. This project aims to upgrade the software to support latest libraries while removing the deprecated code, along with adding some notable features to the software.