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
Attachment:
signature.asc
Description: This is a digitally signed message part