Group: Guix/GSoC-2024

From LibrePlanet
Jump to: navigation, search

GNU Guix Google Summer of Code ideas page for 2024

Guile based build-tool for Guix

Guile-based build tool for advanced software developers who do not want to deal with the complexity of multi-platform deployment and dependency hell. By default the tool runs inside the GNU Guix build system and effectively replaces the likes of autotools, cmake, etc.

Build tools such as automake and cmake are complex beasts. What they try to do is target multiple build environments by generating make files using a complex list of string expansions. Complexity, in general, means hard to understand, change and maintain. The bad thing is that almost every software project has to deal with this complexity to make the software deployable.

What is wrong with these build tools? In short:

1. Complex - and therefore hard to understand and maintain

2. Simplistic language - simple string expansion systems are not nice and not DRY

3. Race conditions - make's time stamps, for example, are not suitable for building across servers

4. Different combinations of options are badly handled.

5. No intermediate representation

Alternatives, such as Java ant, Scala sbt, and Ruby rake, try to resolve similar issues but are specialised for their environments. Here we have a *fresh* start of a build tool which should ultimately be able to run complex workflows on multiple servers and make use of opportunistic execution, i.e. jobs may be distributed multiple times and the first one that comes back wins.

We primarily target GNU Guix because Guix already solves the complexity of handling dependencies and software deployment. This simplifies things dramatically because the build system does not have to deal with platform or architecture targets. Even so, in time, we can target out of GNU Guix builds.

Mentors: Pjotr Prins (pjotr dot public12 at thebird.nl) and other Guix members (through guix-dev mailing list)

Time: 350 hrs (large)

Port the Guix installer to GNU Hurd

GNU Hurd is a fully functional microkernel that will run more and more systems. Guix boots the Hurd and many packages compile and run. With this project we wish to port the Guix installer for Linux to the Hurd. It is an advanced and challenging project!

IMPORTANT other similar projects will also be considered. E.g. improving Guix+Hurd support in some way is of importance to us. Run the binary image from the Guix download page and tell us what you would want to do. Rump-kernel work is an option. Improving package support is also an option. Etc. etc.

Mentors: Pjotr Prins and Manolis Ragkousis (pjotr email see above) with support from Ludo, Efraim and others.

Time: 350 hrs (large)

Add support for AppImage in guix pack

Currently guix pack supports several formats like debian packages, rpm, and others, but it lacks support for simple things like an AppImage that is just click-and-run for Linux systems. Adding support for it might help deploy applications in some systems that are not currently available, and would keep the internals' (/gnu/store/...) hidden from the users. This could be interesting for games and other applications.

Mentors: Ekaitz Zarraga will help but doesn't have all the needed knowledge for it. Anyone else is free to raise a hand and join.

Time: 175 hrs (medium project)

---

Ideas from 2023

  • Decentralized substitute distribution
  • Robustify long-term support for Reproducible Research
  • Develop a Web interface to configure Guix System

See [1]

Ideas from 2021

Ideas from 2020

Ideas from 2019