[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian's Google Summer of Code 2012 wrap-up

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
conversion tool.

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
and libunwind.

* 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.
Mentored by 

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 

Attachment: signature.asc
Description: Digital signature

Reply to: