[Soc-coordination] GSoC - APT Ordering - Report 1

Christopher Baines cbaines8 at gmail.com
Sat Jun 4 19:18:55 UTC 2011


Hello, 

I'm Chris, I am a student in the UK currently studying for my A-levels
and hope to study Computer Science at University. My Google Summer of
Code (GSoC) project is working on Debian's Advanced Packaging Tool
(APT), more specifically the ordering code. 

So, when APT manipulates packages it has to decide on the order with
which to process them, I am, working on improving the ordering to
prevent package breakages and policy violations, cleaning and improving
the ordering code in general, and modifying the way packages are
processed to allow the parallel processing for fetching and installation
of packages. 

As I knew at the start I would have to down tools for exams during the
coding period so I began working as soon as I was accepted on to the
project. One of the important parts of the project I thought I could
begin immediately was building a consistent and rigorous testing
environment for the code I was going to write. So I began by creating a
virtual machine (VM) running squeeze, the main advantages of a VM is
that I can use snapshots to keep consistently testing the code, and I
can test the actual timewise efficiency of parallel processing. I
installed the guest additions and mounted my working directory on my
host system. I then created a service on the VM to install the APT
packages in my working directory and run a dist-upgrade on the system. 

Sounds simple, but the first problem I hit was that using the --yes
option for apt-get does not make it run non-interactively, debconf still
runs in interactive mode. After a bit of internet research I found that
running  dpkg-reconfigure debconf and selecting uninteractive solved
this problem. I also wrote a bash script to automate the testing process
and produce output on the host machine. This took me the first three
weeks and I will probably make changes and improvements as I come to use
it properly. 

I then contacted my mentor about where to begin next, I got back a very
neat example of a failing of APT's ordering code. In short the example
shows a package being configured before one of its dependants has been
configured [1]. It was suggested that I add a verification bit to detect
any of these policy violations. I am currently in the process of writing
this however my current attempt does not take in to account the way in
which the packages are actually configured using dpkg, so this will need
addressing.

Over the next three weeks I have exams, so little coding will get done,
but I hope to use the time I can spare looking over the code, and
discussing ideas with my wonderful mentors Michael and David.

Also, thanks to everyone who helped me on IRC when I got stuck and
needed direction, and good luck to everyone else who is participating in
the GSoC.

Chris

1.
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/soc-coordination/attachments/20110604/a89b9408/attachment.pgp>


More information about the Soc-coordination mailing list