Hi,<br><br>This is the first report for my project : Create Lintian reports frontend [0], mentored by Niels Thykier.<br><br>In the past month, there has not been much progress in terms of coding. But there has been a lot of learning and some other tasks that did not require coding.<br>
<br>I started the work by first cloning the Lintian git repository on my local system. After that I spent some time in getting familiar with lintian and its objectives, its source code and how to use lintian. There were some initial issues in running it which I was able to sort out with Niels' help.<br>
<br>Lintian has a script called as harness which is used for publishing the results of its quality checks. My main tasks are development of a standalone harness tool and an automated test suite for testing it.<br><br>Instead of starting to write the code for the new harness tool directly, I first started to learn about the ways in which I could implement the various new functionalities that I have suggested in my proposal. The first one being the distributed execution.<br>
For that, I have set up a basic Beowulf cluster using my machine(master) and a VM(slave) running on my machine and started researching about the various Perl modules that are available for parallel computing on a cluster. Currently I am focusing on the following modules :-<br>
<br>    1. Parallel::MPI::Simple - <a href="http://search.cpan.org/~ajgough/Parallel-MPI-Simple-0.03/Simple.pm">http://search.cpan.org/~ajgough/Parallel-MPI-Simple-0.03/Simple.pm</a><br>    2. Parallel::Pvm - <a href="http://search.cpan.org/~dleconte/Parallel-Pvm-1.4.0/Pvm.pm">http://search.cpan.org/~dleconte/Parallel-Pvm-1.4.0/Pvm.pm</a><br>
    3. GRID::Cluster - <a href="http://search.cpan.org/~edusegre/GRID-Cluster-0.04/lib/GRID/Cluster/Tutorial.pm">http://search.cpan.org/~edusegre/GRID-Cluster-0.04/lib/GRID/Cluster/Tutorial.pm</a><br><br>There are two approaches to parallel computing on a cluster - MPI(Message Passing Interface) and PVM(Parallel Virtual Machine). MPI is a standard which while PVM is a software tool. The 1st module uses the MPI approach while the other two modules use PVM. I will filter out the one I will be using, as soon as I completely evaluate all three modules. The final aim of using this parallel execution is to run multiple instances of Lintian on same machine or on different machines for analyzing different parts of an archive in parallel.<br>
<br>I also started setting up of a test suite for testing of harness. Niels helped me in understanding the basics of testing and how to use a chroot environment for testing. I came to know about some of the alternatives that are available :-<br>
    1. pbuilder<br>    2. sbuild<br>    3. deb-o-matic<br>    4. VMs<br>The advantage of using a chroot environment for testing is that I won't have to install everything on my host system and I can catch the use of packages that are declared in the dependencies. In the above, pbuilder and sbuild provide almost the same functionality but their internal implementation is different. Both of them tend to adopt the functionality that is added by each other. deb-o-matic is based on pbuilder and written in Python and provides the same functionality. Virtual Machines could be used for building if only essential packages are installed.<br>
After reading about all of them, I have finally decided to use pbuilder [1].<br><br>Just like lintian, I will be having a build-time test suite for harness using pbuilder on my local machine. I have set up a pbuilder based Debian Squeeze chroot environment to build packages with.<br>
<br>--------------------Next Steps--------------------<br><br>1. Get familiar with using pbuilder.<br>2. Find out ways to implement other functionalities in harness.<br>3. Start the actual coding for harness.<br><br>----------------------------------------------------------------------------------------------------<br>
<br>[0] : <a href="http://wiki.debian.org/SummerOfCode2012/StudentApplications/AbhishekKumar">http://wiki.debian.org/SummerOfCode2012/StudentApplications/AbhishekKumar</a><br>[1] : <a href="http://pbuilder.alioth.debian.org/">http://pbuilder.alioth.debian.org/</a><br>
<br>----------------------------------------------------------------------------------------------------<br><br>- Abhishek Kumar<br>