Back to Programs

Operating systems

GNU Project

Development of the GNU Operating System

autotoolscc++compilergccGNU

Participation history

8 GSoC years

2026

5 projects

Official year page

Develop a Mobile Phone User Interface for GNU XaoS

GNU XaoS is a real-time interactive fractal zoomer that currently lacks a mobile-optimized UI. This project will: (1) implement a touch-friendly QML...

Extend support for ARM in GNU Boot

Computers with ARM architecture are prevalent but GNU Boot currently doesn't support them. My focus has also shifted from the classic x86_64 laptops...

GNU Aris, UI and Feature Enhancements

This project's goal is to enhance the usability and accessibility of GNU Aris. It addresses the issues that students currently struggle with when...

GnuCOBOL: Implement Initial Object-Oriented Programming Support

GnuCOBOL currently has no support for the Object-Oriented Programming (OOP) features defined by the ISO standards ISO/IEC 1989:2002 through ISO/IEC...

Port parts of GNU libcdio to Rust

This project introduces Rust into GNU libcdio, with the goal of modernizing its codebase along with the benefits of Rust's memory safety. This...

2024

3 projects

Official year page

Integration of GNU Anastasis With GNU Taler Wallet

The GNU Anastasis is a key recovery system that allows the user to securely deposit shares of a core secret with an open set of escrow providers, to...

Add source encoding and literal conversion to the GnuCOBOL compiler

COBOL source files may use different encodings. Commonly, these use some 8-bit character encoding like ISO-8859-15 or an EBCDIC one "transferred as...

GNUnet-Transport Next Generation (TNG) Communicator plugins

This project aims to implement a new communicator for GNUnet's Transport Next Generation (TNG) using the HTTP/3 protocol. The communicator will be...

2023

7 projects

Official year page

Add a web user interface to XaoS

The project aims to enable XaoS, a fractal program, to function effectively on web browsers through the use of Qt. Currently, XaoS requires the user...

Integration of GNU Anastasis with the GNU Taler Android wallet

GNU Anastasis is a distributed and password-less key backup and recovery system. It allows users to safely backup keys by giving shares to various...

lilypond - Fix Beaming Patterns/Beam Subdivisions and Tuplets

Many bug reports from almost 10 years ago to even recent times report that GNU Lilypond has been unable to correctly render note subdivision beams...

GNUnet Transport Next Generation (TNG): Communicator plugins

The protocols supported by Transport Next Generation are limited to TCP and UDP. I will implement a new communicator plugin to transport data using...

aris - Add a web user interface to GNU Aris

The project aims at extending GNU Aris by adding a web user interface. It involves some design changes in the GUI and migrating the current GTK based...

Parameterized Packages for GNU Guix

Parameterized packages will provide users with a simple way to configure many aspects of packages, à la Gentoo USE flags. This project will add two...

Porting Rust into GNU/Hurd

The goal of this project is to make the Rust language available on the GNU/Hurd operating system. Currently, there is no official Rust support for...

2020

7 projects

Official year page

Adopt the SMuFL music font encoding standard

I would like to implement support for the SMuFL music notation font standard, in order to give LilyPond access to the growing number of notation...

V3 Rewrite with Symfony

GNU social is a communication software used in federated social networks, however, it relies on outdated and unmaintained libraries. To this end,...

Web-based graphical user interface for LibEuFin

LibEuFin is a software package that provides access to (currently mainly European) banking APIs via a simplified interface. The goal of this project...

Image registration with the celestial sphere and non-linear warping in Gnuastro.

This project aims at working towards the implementation of libraries for image registrations and non-linear warpings required to register them for...

Support arbitrary precision and export high quality output

XaoS currently cannot support very deep zooms because the 80-bit floating-point arithmetic used runs out of precision before too long. It should be...

Machine Interface for GNU Poke

GNU poke is an interactive, extensible editor for binary data. Not limited to edit- ing basic entities such as bits and bytes, it provides a...

Wget2 - LibWARC Implementation and Integration

WARC, short for Web ARChive, is a data storage format for storing archived web pages. It is an extension of the ARC format, traditionally used by web...

2019

5 projects

Official year page

GNU Guix - Guix Deploy

Add tooling to the Guix package manager for configuring and building local "copies" of remote systems and transferring those copies to their...

GNU social - Optimizations on Load Balance System and Storage Usage

GNU social is a communication software used in federated social networks. This project will: • Improvements on the Federated Requests Queue (which...

[GNU Wget] HTTP/2 Test Suite

Adding HTTP/2 + TLS support to the test library and h2 specific tests.

syscall/setsockopt optmization on various platforms, working on the testsuite for the libmicrohttpd2 API

To optimize syscall/setsockopt optimization on various platforms (Debian Linux, FreeBSD 12-RELEASE-p3, NetBSD-CURRENT), and to work on the testsuite...

Improvements on GNU social's network systems

GNU social is a communication software used in federated/decentralized social networks. In order to archive such decentratization, some communication...

2018

9 projects

Official year page

Improve Core Animation implementation and integrate it into AppKit

GNUstep is a console, desktop and web application development framework for development using Objective-C. It is based on OPENSTEP specification, and...

Automake : Parse Makefile.am using an Abstract Syntax Tree

The goal of the project is to generate an abstract syntax tree from parsing the input Makefile.am . It has separate lexer, parser and tree generation...

GNUnet Web-based User Interface

Implementation of a Web-based UI for GNUnet similar to GNUnet-Gtk with a yet to be determined framework such as Angular2. This includes the design...

libjit - register allocation

At the moment register allocation in libjit is rather simplistic. The goal of this project is to implement proper data-flow analysis and register...

ActivityPub plugin for GNU Social

The project idea aims at developing a plugin (as GNU Social is true to the Unix-philosophy of small programs to do a small job) that will implement...

GNU Guix (Cuirass): Adding a web interface similar to the Hydra web interface

Cuirass is aimed to monitor a git repository containing Guix package definitions and build binaries from these package definitions. The state of...

GNU Taler - Payment/Donation Buttons and Code-less Payments with GNU Taler

GNU Taler is a new electronic online payment system which provides privacy for customers and accountability for merchants. To pay with Taler,...

CLISP - Integrate the SICL compiler into CLISP

This project aims to incorporate components from Robert Strandh’s SICL compiler called Cleavir into CLISP. Adding Cleavir would open up the...

Automake : Modularize Automake to improve the test-suite performance

This project aims to modularize the implementation of Automake to make it more easily extendable and to improve the test-suite performance.

2017

13 projects

Official year page

GNUstep - Make WebCore run on top of GNUstep

A longstanding problem in the GNUstep stack has been the absence of a web browser, due to the lack of a modern and feature-complete backing web...

Javascript Backend for Gnu Guile

To implement a Javascript backend to Gnu Guile, capable of compiling programs for execution in a modern web browser. This proposal completes work...

[GNU Wget] Design and implementation of statistics module

At the end of the project, the following objectives should be met: host-based statistics are maintained and presented to user when asked to do so...

Ring - Create a C++ plugin for Ring

The plugin will read incoming messages and detect a particular sequence (keyword). The sequence is a written message in some scripting language (to...

Improving Kawa's gnu.bytecode using ObjectWeb ASM

The goal of this project is to improve the gnu.bytecode library by creating a version of it which uses ObjectWeb ASM to generate classfiles, rather...

Multiple qualities of video (GNU MediaGoblin)

GNU MediaGoblin is a well known free software media publishing platform where people can see and share their media. Even though we can think of it as...

[GNU Wget] Design and Implementation of Test Suite Using Libmicrohttpd

At the end of the project, the following objectives should be met: Wget2 will use Libmicrohttpd, a small but powerful C library of HTTP server code,...

wget2 - Design and implementation of a framework for plugins

Ability to extend wget for a paritcular purpose using dynamically loadable modules would be a nice addition. (Reference idea)

JavaScript for info-style navigation

The info program is very bare-bones (no fonts or images). On the other hand, the info program has a number of conveniences for browsing...

Improving the Internal Structure of Chords

LilyPond's internal representation of chords is limited. As of now, it can mostly only represent the individual notes themselves that make up the...

Ring: NodeJS Plugin for Seamless Cross-platform Client Development

A big problem impeding Ring development is developing (and providing support for) different Ring clients running on disparate systems. What this...

Proposal GNU Ring project Olivier Grégoire

I will work on the GNU Ring project. This project is, at the moment, unstable due to a lack of automated tests. Only a part of the code is tested.I...

Guix rewrite build daemon in Guile Scheme

This project proposes to replace the existing C++ guix-daemon with one implemented in Guile Scheme, for purposes of hackability and unity of code...

2016

15 projects

Official year page

Rust implementation of GNUnet utils

Improve the Rust implementation of GNUnet utils, possibly including adding support for asynchronous IO using mio, or perhaps a higher level...

GCC - Further work on addressing mode selection

The aim of this project is to improve the addressing mode selection pass in GCC that was made the previous summer.

ScholarLY Annotations

The ScholarLY 'annotate' module is a new tool, currently in a workable preliminary state, which extends the LilyPond music engraving software to add...

A private and secure auctioning library

This project is about developing a secure and private auctioning library incorporating an algorithm by Felix Brandt. We modified the algorithm to use...

Cleanup ffcall

GNU Libffcall is a collection of four libraries which can be used to build foreign function call interfaces in embedded Interpreters: Avcall -...

Code Refactor

GNU Libffcall is a collection of four libraries which can be used to build foreign function call interfaces in embedded Interpreters: Avcall -...

Integrating npm into the Guix ecosystem

This project will allow Guix hackers to more easily package software that is distributed through the Node Package Manager (npm), as well as allowing...

GCC - Replace Libiberty with Gnulib

For projects using Libiberty, most of that functionality can be provided by Gnulib and therefore there is no real advantage to the GNU project to...

Rewrite Hydra to be more integrated with Guix

The idea of this project is to write a continuous build system in Guile Scheme inspired by Hydra, in order improve Guix infrastructure parenthood.

[MediaGoblin] Subtitle Interface along with keyboard hotkeys for video player

Building a subtitle interface for the current video player. Popular formats of the subtitles would be supported along with multiple...

Lilypond - Allow spanners to cross voices

Lilypond is a free music notation program that produces quality sheet music. The music is first written in a text format; Lilypond then processes the...

GCC - Development of GIMPLE Front End

The purpose of this project is to develop a tool which will ease the process of unit testing in gcc. Writing a test-case in C to generate the...

Implement xattr Support of Hurd Project

The current hurd's ext2fs server uses a reversed field in inode to store passive translator setting. It is a ad-hoc method and causes that hurd's...

Porting GuixSD to GNU/Hurd

In this project, we would like to port the Guix Software Distribution to GNU Hurd. By the end of the project, Guix should be able to handle and use...

Liberty Eiffel meets Windows

Liberty Eiffel language available on windows environment.