Gentoo Summer of Code
1.
Project Description
For the fourth year running, Google is organising a
Summer of Code, funding
students to work on open-source projects over the summer. Gentoo has been
accepted for Summer of Code 2008.
2.
Developers
| Developer |
Nickname |
Role |
| Alec Warner |
antarus |
Lead, Mentor |
| Jorge Manuel B. S. Vicetto |
jmbsvicetto |
Member |
| Mark Kowarsky |
mark_alec |
Member |
| Grant Goodyear |
g2boojum |
Member, Mentor |
| Joshua Jackson |
tsunam |
Member, Mentor |
| Anant Narayanan |
anant |
Mentor |
| Alex Howells |
astinus |
Mentor |
| Jose Alberto Suarez Lopez |
bass |
Mentor |
| Petteri Räty |
betelgeuse |
Mentor |
| Preston Cody |
codeman |
Mentor |
| Saleem Abdulrasool |
compnerd |
Mentor |
| Diego Pettenò |
flameeyes |
Mentor |
| Marius Mauch |
genone |
Mentor |
| Fabian Groffen |
grobian |
Mentor |
| Mart Raudsepp |
leio |
Mentor |
| Luca Barbato |
lu_zero |
Mentor |
| Markus Dittrich |
markusle |
Mentor |
| Robert Buchholz |
rbu |
Mentor |
| Robin H. Johnson |
robbat2 |
Mentor |
| Olivier Crête |
tester |
Mentor |
All developers can be reached by e-mail using nickname@gentoo.org.
3.
Applying to GSOC 2008
As a Student
Google is accepting
student applications
until 7 April 2008, 00:00 UTC. (Please see the published
GSOC timeline in case that deadline should change).
Before applying, we encourage you to browse our project ideas below and
offer up your own ideas in #gentoo-soc on freenode and on the gentoo-soc mailing list. We
urge you to discuss your ideas ahead of time with our prospective
mentors so we can work out any kinks prior to the application deadline.
Please also read our
application
guidelines prior to applying.
As a Mentor
Mentor applications are now open. Please read the
mentoring guidelines to learn what you need to do to apply.
4.
Project Ideas
As of yet Gentoo is unaware of how many slots have been allocated.
Some project ideas are below:
| Project |
Details |
Contact |
| Sandbox improvements |
Since Martin (azarah) has been busy and then was retired, there was
nobody working full-time on sandbox, yet it's one of the core utilities
that Gentoo uses; Martin left an experimental branch of sandbox, which
has code used for Gentoo/FreeBSD support in it. At the moment that
sandbox fails badly with Linux modules, and is non trivial to fix.
Having someone cleanup sandbox code and ensure that building continues
to occur in a safe environment from the running system is of critical
importance. It would also be useful to port sandbox to other operating
systems such as: Darwin, Solaris, *BSD and more.
|
Diego Pettenò |
| Autoepatch |
Autoepatch was a project to replace gnuconfig.eclass and elibtoolize
that you find used in quite a few ebuilds to help ensure packages build
correctly. Its goal is to apply common patches and fixes to source code
after the unpacking but before the the compile phase. Ensuring that
common mistakes made in source code, such as a broken autotools
issue, is resolved before someone has to fix it on an ebuild by ebuild
basis is a very useful thing for developers and saves time.
|
Diego Pettenò |
| Eselect modules |
Eselect is Gentoo's configuration tool for selecting versions or linguas
of applications that have multiple instances that can fulfill a need.
There are many applications such as tar, whois, cpio, sendmail, package
managers (portage, paludis, pkgcore), and countless others that are
different versions/implementations of the same application. Eselect is
ideal for allowing you to have multiple versions of these applications
installed but having the default system version be selected via the
Eselect framework. Adding more modules will allow users to have better
control over the various packages.
|
|
| scanmacho |
A program that scans Darwin Mach-O files and returns information
in the same way as the scanelf tool. It will be used as a
replacement for otool, since the latter tool requires
special parsing of its output to get the required values.
|
Fabian Groffen |
| busybox package rescue applet |
An applet for busybox that aids users in fixing a broken system by
merging gentoo binary packages (tbz2 format) to the live filesystem.
This applet would be embedded (minimal size) written in C and it should
handle things like atom parsing and dependency calculation as well as
installing packages to the live filesystem properly (currently tar and
bzip2 'work' but do not write the correct metadata.)
|
|
| OpenPAM-compatible modules for basic login on Linux |
Gentoo supports already two PAM implementations, but they are tied to one
operating system only: Linux-PAM (sys-libs/pam) on Linux and OpenPAM
(sy-auth/openpam, plus sys-freebsd/freebsd-pam-modules) on FreeBSD. Being
able to choose between either implementation on either operating system is
one of the long term goals of the PAM team. The first step would be to
produce a set of single PAM modules compatible with both Linux and
OpenPAM that could replace Linux-PAM and its default set of PAM modules.
|
Diego Pettenò |
|
Portage/ebuild ability to use file-base capabilities rather than setuid.
|
With recent Linux kernels, file-based capabilities are available. It is
thus possible to give the ping command just the minimum capabilities
needed to access the RAW socket, rather than leaving it entirely setuid. A
long term goal for Gentoo would be to allow the user to choose
capabilities over setuid for (at least some) programs. To support this
feature however, Portage needs a means to copy over capabilities from one
file to another. A python extension may be needed to handle this.
|
Diego Pettenò |
|
Portage support for multiple extraction tools.
|
Some ebuilds refer to source packages that upsteam releases with formats
different from tarballs (either gzip or bzip2), like ZIP or tarball
compressed with LZMA. Right now, to unpack these, the ebuilds depend on a
specific decompression tool like app-arch/unzip, even if the system
might already have something like app-arch/libarchive installed
that can handle it. A better way to handle this would be to have a set of
virtual ebuilds that depend on at least one of a given set of tools that
extract a specific format (like virtual/portage-unpack-zip), and
a set of scripts that can find the best tool available on the system to
do the unpacking.
|
Diego Pettenò
Zac Medico
|
|
Portage/Pkgcore/Paludis backend adapter for PackageKit
|
PackageKit is a UI for getting packages installed. Currently there is no
backend support for Gentoo-based package managers. This project would
consist of authoring the correct adapters to allow PackageKit to utilize
one or more existing Gentoo package managers such that users could use
PackageKit on Gentoo.
|
Donnie Berkholz
|
|
Reimplementation of revdep-rebuild as a Portage package set
|
Revdep-rebuild is the solution to fix runtime linker errors caused by
missing dynamic libraries. It has a number of conceptual problems as it is
implemented as a bash script on top of various portage interfaces, most
importantly emerge, resulting in errors, incorrect results, poor
performance and lack of automation.
To improve this situation it should be reimplemented as a dynamic package
set using the set framework and linkage information included in
portage-2.2. A prototype for this already exists, but lacks most of the
processing steps currently in revdep-rebuild and therefore doesn't generate
useful results. People working on this project could either complete this
prototype or start from scratch if wanted.
|
Marius Mauch
|
|
GNAP Love (embedded framework)
|
The road to GNAP 3 needs your love. GNAP 3 will be a complete
framewrok to creation of gentoo based embedded systems. Last GSoC
was a nice GNAP experience and this year will be even better. The
idea is to complete small/medium task for gnap (mostly smalls) for
example: live firmware upgrade, SquashFS packages, UnionFS support
and adapt GNAP to new catalyst.
|
José Alberto Suárez López
|
|
Tools and support for multiple FORTRAN compilers
|
The FORTRAN language is unfortunately not dead yet. Many
scientists still use it and your pet program might need
it. Gentoo has a few FORTRAN compilers, but the framework is
getting old and could be much improved. Some powerful compilers
are not allowed. The task could include rewriting the framework
to allow any user compiler, FORTRAN profiles with eselect,
writing documentation, testing applications, making benchmark on
linear algebra. Basically making FORTRAN on Gentoo more
configurable, robust and easy.
|
Sébastien Fabbro
|
|
Make Beacon (the GuideXML editor) usable
|
Beacon is a
web based
GuideXML
editor that isn't widely used. The project entails making UI
enhancements, improving usability and packaging the project for
wide-range deployment and usage by GuideXML users. Knowledge of
PHP, JavaScript and XML (XSLT in particular) will be considered a plus
since you will be working on an existing codebase.
|
Anant Narayanan
|
|
Write G-PEAR (inpired by G-CPAN)
|
This project involves writing a tool (tentatively named G-PEAR) that
generates and installs PEAR
packages on the fly. The tool could closely emulate the structure of
G-CPAN,
that is open to discussion however.
|
Anant Narayanan
|
|
|