GSoC/GCI Archive
Google Summer of Code 2012

GNU Project

Web Page:

Mailing List:

The GNU Project was launched in 1984 to develop a 100% free software operating system: the GNU System.


  • [gnucap] Plugins to import and export gschem files in GNUCap The project aims to build 1. A language plugin which can parse a schematic file produced by gschem(gEDA) software and produce a netlist. 2. A plugin to build schematic from netlist
  • [HURD] Disk I/O Performance Tuning The most obvious reason for the Hurd feeling slow compared to mainstream systems like GNU/Linux, is a low I/O system performance, in particular very slow hard disk access. The reason for this slowness is lack and/or bad implementation of common optimization techniques. One of them is clustered page reading. This technique is base on idea that usually not only one page in file is read. That's why to minimize moving of disk head several pages which stand one by one are read at once, although only one page was asked.
  • automake - non-hostile fork "Automake-NG" to exploit more features of GNU make The primary target of this project is to enable Automake-generated Makefiles to exploit more features of GNU make. This project plans to build upon the already existing (but still in its early infancy) "Automake-NG" fork of Automake, which generates Makefiles targeted to GNU make only.
  • DTLS Heartbeat Extension for GnuTLS The aim is to add support for rfc6520 - the heartbeat protocol. This will allow to implement both liveness check and MTU path dicovery.
  • Emacs-Orgmode Git merge tool for Org Files The purpose of the project is to create a specialized Git merge driver for plain text Org-Mode formatted files. A merge driver is a program which will combine two versions of a file based off of a common ancestor into a single file, marking conflicting changes within. A specialized merge driver for Org-Mode files will be able to leverage the structure to understand the effects of modifications on the integrity of sections. The merge driver will solidify Org-Mode as a tool for collaborative work.
  • Faster elliptic curve scalar multiplication. Improve the scalar multiplication on elliptic curves by implementing the wNAF-based method with additional caching support.
  • GNSS Receiver on GNU Radio Implementation of acquisition, tracking and demodulation algorithms for a Galileo software receiver, following the example already implemented for GPS in the GNSS-SDR project.
  • GNU Octave - Implement JIT compiling This project will improve the performance of GNU Octave through JIT compilation. JIT compilation will be done using LLVM. This will result in greatly increased speed for non-vectorized code and loop execution.
  • GNU Octave: Least-Squares Spectral Analysis Least-squares spectral analysis is a method of fitting frequency data to a set of sinusoidal functions, similar to Fourier series; unlike Fourier series, though, LSSA minimizes extraneous long-period terms that can creep into a Fourier analysis. This is a powerful tool that should be added to Octave (thus its presence on the wishlist.)
  • GNU Radio - DRM receiver The purpose of this project is to implement a DRM Receiver for GNU Radio. DRM (Digital Radio Mondiale) is a standard that is used for digital HF broadcasting (High Frequency: from 0.3 to 30 MHz). Because of the interesting physical electromagnetic wave properties of HF channels, DRM transmissions can be used for global communications. A GNU Radio DRM receiver would hence be of use for anyone anywhere in the world interested in radio communications. An upcoming extension of DRM, DRM+, uses VHF/UHF broadcasting (Very High Frequency: 30 - 300 MHz and Ultra High Frequency: 300 - 3000 MHz), that might well replace analog FM broadcasting in the long run. A starting point for development is the existing code base of the DREAM project. Porting this code to GNU Radio will yield many signal processing blocks that are necessary in any communication system and will allow easy extension and improvement of the standard. For example, a global data communication link could be created with GNU Radio by replacing the payload with IP packets.
  • GNU Radio: Extend and improve filter design components Digital filter is one of the inevitable signal processing blocks in any DSP system. GNU Radio provides a true free and open platform for designing practical filters which can be used in real time. The proposal addresses ideas for improving filter design components as suggested by Martin Braun (CEL, KIT)
  • GNUstep: Implementation of basic CoreAnimation and UIKit-compatible functionality This proposal covers implementing a flexible animation API compatible with a certain popular existing desktop and mobile platform, as well as adding APIs compatible with a popular mobile platform. This will allow extremely user-friendly interfaces, as well as allow development or porting of applications that use CoreAnimation or UIKit API on platforms that don't yet support it.
  • Guile-Emacs Use libguile as the basis for Emacs's Lisp implementation and begin replacing the Elisp interpreter with Guile
  • Improving the GUI of GNU Octave A main upcoming feature of GNU Octave is an official GUI. Since I initially started to work on a GUI with GNU Octave developers before GSoC, I would like to continue my work within GSoC, so that we can soon release the first version to the public.
  • kawa - Common Lisp support The Kawa project has a small subset of Common Lisp (CL) syntax implemented. It supports a much larger subset of CL concepts, however. The aim of this project is to further enhance the CL support by providing more syntactical forms and gluing the current CL concepts togheter. I also plan to support CL docstrings and time-permitting an automatic Javadoc generation facility.
  • LilyPond - improve Lyrics support LilyPond support for lyrics (words that are sung to the melody) is currently similar to that of the two market leaders (Finale and Sibelius). I will add advanced lyric positioning functions: syllables will be automatically moved to avoid ambiguities in interpretation and faciliate easier sight reading. Lyric syllables will no longer cause disturbances in note spacing - instead of moving notes to fit lyrics, lyrics will adapt their position to allow for the optimal note spacing.
  • Org-mode – Let Org-mode synchronize with online bug-tracking and todo-list services. There's currently no convenient way to manage services like Redmine, Bugzilla or GitHub issue tracking system in Org-mode. Org-mode already handles TODO-list pretty well, but there's no synchronization functionality for TODO-list services such as Toodledo or Google Tasks. The goal of the project is to let Org-mode import and export to these kind of services in a generic way so that new services can be added easily later on.
  • recutils – Add support for indexes The aim of the project is to make queries over big recfiles faster by using a binary index storing a mapping of values of specified keys to records. The index will be completely optional and will be ignored if the recfile was modified later than specified in the index. The indexed fields will be specified in the record descriptors and the index will be built (initially or after a change to the recfile) offline by user's request.
  • Reimplement gnulib-tool in Python gnulib-tool is the developer tool that collects modules from gnulib and stores them in the source code of a package. It is currently written as a shell script; this leads to limited maintainability and slow execution speed. The task is to rewrite it in Python. This will make the code more maintainable and faster. Required skills: Experience writing code in an object-oriented programming language (such as Java, C#, not necessarily Python). In this project, you can learn Python on the fly or broaden your experience with Python.
  • Synchronization of data between GNOWSYS servers Two or more remote servers of GNOWSYS exchange messages between them, subscribe to parts of the database and establish sync relationships (subscription). Automatic agent based synchronization should happen between the servers.
  • wget- metalink support The project consists of adding metalink (RFC 5854) download description format support to wget, with the fundamental features like single file downloads from single source, hash verification, and more.