Hi everybody, Debian participated this year with 15 projects in the Google Summer of Code, with 12 projects finishing successfully and with some of the students greatly exceeding our expectations.
We would like to thank everybody involved, mentors, co-mentors and students for
all the work they put this summer. We would like specially invite our students
to continue being involved in making Debian better, whether by continued work
on their summer project or by working in other areas of Debian. Please feel
Below is a small summary of what our projects achieved this summer. If you
have any comments or suggestions, please drop us an email on our mailing list:
* Pluggable Acquire System for APT
by Bogdan Purcareata. Mentored by Michael Vogt and David Kalnischkies.
Higher-level package management systems require more and more metadata,
often to be collected from a wide variety of sources. The goal of
the project was to provide a unified backend that can be hooked into,
so all the currently external tools could use this mechanism and
benefit from all the goodies that come with it (checksums, pdiffs,
etc). Furthermore, future package management developers don’t have to build
their own backends for acquiring files from the Debian Archive, instead
they can just build plugins for APT.
Most of the work has already been merged into apt – albeit, one has
to choose between the old and the new code for now.
* PyPI to Debian repository converter
by Natalia Frydrych. Mentored by Piotr Ożarowski.
The PyPI repository contains thousands of Python packages, of which only
a fraction is available in Debian. To make it easier to install additional
software from this repository, Natalia developed a PyPI to Debian package
Thanks to her work, it is now possible to use this tool to automatically
fetch a PyPI package, and create not only a Debian package out of it,
but repositories too, making installation and sharing them even easier.
The same tool can be of use to Debian packagers, as they can base their
packaging on the generated one, reducing the amount of work they need to do.
* Clang support for the Debian buildd infrastructure
by Alexander Pashaliyski. Mentored by Sylvestre Ledru & Paul Tagliamonte.
Debian has a distributed buildd network, which builds incoming packages for
all suitable architectures.
During the Summer of Code, The first step of Alexander’s work was to document
the process of configuring a new buildd node. While doing so, some patches
have been proposed and merged upstream. Secondly, a parallel build
infrastructure has been set up to process incoming packages alongside official
builders to test for issues in each package when built with the clang compiler.
This infrastructure helps move Debian forward in two distinct ways. Firstly,
this project helps to decouple Debian from gcc in term of tools and processes.
This means that we will be able to build the archive with secondary compilers
to aid with compiler testing, or help derivatives build their distro in a
slightly different way. Secondly, it helps to provide automatic rebuilds using
clang (the LLVM-based compiler), allowing for more checks, as well as enabling
new tools to audit the archive’s source.
* Provide an alternative to libstdc++ with libc++
by Andrej Belym. Mentored by Sylvestre Ledru.
With the LLVM stack gaining more and more momentum, Andrej took on the task
of preparing a Debian package for libc++ (an alternative for libstdc++).
The result of this is in experimental already, at least for the i386 and
amd64 architectures, and bugs with patches have been filed to correct issues
on some of the other architectures. The package also provides an easy way
to build C++ applications with clang, using the libc++ library instead of
Andrej also works on providing a replacement of libgcc_s using compiler_rt
* Improving the online package review interface for http://mentors.debian.net
by Baptiste Mouterde. Mentored by Nicolas Dandrimont, Arno Töll and Stuart
http://mentors.debian.net is the most common way for new maintainers to get
their packages sponsored into the main Debian archive. Currently, package
reviews happen in three different places: the website http://mentors.debian.net,
the debian-mentors mailing-list, and the “sponsorship-requests” bug reports.
Baptiste worked on debexpo, the software that runs mentors.d.n, in order to
merge the information from those three distinct sources in a single place. To do
so, Baptiste developed an online code review interface, allowing reviewers to
comment directly on snippets of code and, at the end, to send a detailed report
to the mailing-list or the sponsorship request bug report.
In order to develop his online review interface, Baptiste had to completely
overhaul debexpo’s package storage backend. Thanks to his work, package history
will be kept using git repositories with one commit per upload to debexpo,
allowing for easy random access to former package revisions.
* Semantic Package Review Interface for http://mentors.debian.net
by Clément Schreiner. Mentored by Nicolas Dandrimont, Arno Töll and Stuart
As a new maintainer, getting your packages sponsored into the main Debian
archives can be a lengthy and frustrating process. Most of that time is spent
waiting for a potential sponsor to do an initial review of the package.
Clément has worked on debexpo’s package analysis capabilities, and among other
things integrated debtags’ heuristics to find out which packages are similar to
the one just uploaded, allowing us to suggest packages to sponsors, and
conversely to suggest sponsors to prospective maintainers.
Throughout his work, Clément improved debexpo’s package metadata storage API,
making it easier to query packages given specific traits (e.g. “mostly
developed in Python”, “works on the network”, …).
* Improving Debian Team Activity Metrics
by Vipin Nair. Mentored by Sukhbir Singh and Andreas Tille
The “Debian Team Metrics” project collects data from various sources (mailing
lists, repositories, package upload records) to gauge the performance of teams
in the Debian community. The data collection work was done as a part of Google
Summer of Code last year by Sukhbir Singh, mentored by Andreas Tille and Scott
Howard, where the tools to gather data for the metrics above were developed.
Over the summer, Vipin worked on writing a web interface for presenting the
data, designed a data access API and suggested new metrics for the project. We
hope that the Debian community can make use of the data to see how a team, and
individual members in a team are performing. We plan to announce this project
* Multiarch Cross-Toolchains
by Thibaut Girka. Mentored by Héctor Orón Martínez.
With the rise of ARM, and the increasing importance of embedded systems,
the need for a usable cross-compiling toolchain rose as well. Thanks to
Thibaut’s work, wheezy will come with much improved support for
cross-toolchains (dpkg, apt know about cross-arch dependencies for example).
Thibaut also wrote an important patch to gcc 4.7 packages to enable usages of
gcc -dev packages without installation the whole compiler dependencies.
* Port bootstrap build-ordering tool
by Johannes Schauer. Mentored by Wookey and Pietro Abate.
Bootstrapping a new Debian port is extremely difficult, in a large part due
to cyclic build dependencies. Johannes wrote a tool and various other utilities
to analyze and help solve the build dependency cycle, and has documented
the whole process extensively, thereby reducing the manual work required
* Bootstrappable Debian
by P. J. McDermott. Mentored by Wookey and Jonathan Austin.
Another way to tackle the bootstrapping issue is to break the build dependency
cycles, and that is what Patrick set out to do. Patrick implemented a way
to support “build profiles” in dpkg and sbuild, and made test builds for some
base packages using these staged builds to break the dependency cycles.
As part of his work, Patrick also helped improve the multi-arch support
in a number of core packages.
* Improve Debian-Installer network setup, by Sorina – Gabriela Sandu.
This project aimed to improve the Debian-Installer network setup. In the first
part of the project, Sorina added support to scan the wireless network interface
and provide a list of available wireless networks instead of asking for one.
Afterward, Sorina worked on adding support for netcfg to write configuration
files in Network Manager’s format, in order to keep the configs used while
installing after the installation process is complete. Furthermore, Sorina also
worked on some of the netcfg bugs, mostly wishlist items but also normal bugs.
* multi-archive support for dak
by Ansgar Burchardt. Mentored by Joerg Jaspert.
Ansgar improved upon the Debian Archive Kit (dak) by adding support for
handling multiple archives with the same installation. His work is already
merged and is live, the NEW, policy and build queues are all separate archives
now. This is a huge step towards merging the archive of backports.debian.org
into ftp-master.debian.org, and a required step towards personal developer