This is the third report for my project : Create Lintian reports frontend [0], mentored by Niels Thykier.<br><br>I started last week by writing down the proposed approaches about things that need to be implemented in harness - distributed execution and working directly using http.<br>
After that I started working on making harness work over http rather than having the need for a local repository.<br>The approach in a nutshell is to get the binaries and sources of the packages that need to be analyzed from an online repository using the http protocol. Once, the required files are available locally, run lintian over them. And delete the files after they are analyzed.<br>
<br>The source code for the work done till now is available at [1]. The code available is able to do all the steps that I have mentioned below except for the 4th one.<br><br>So, now delving into details about how the feature of http access is being implemented for harness.<br>
<br>Step 1 : Set the various parameters like the url for the distribution, architecture and area in the reporting/harness.config file.<br><br>Step 2 : Run reporting/<a href="http://harness.pl">harness.pl</a>. <br>    Niels has created a mock apt configuration and apt-get with this custom configuration is being used for retreiving the files. The configuration files can be found inside the directory apt-mirror-test inside my repository. The location of this directory is stored in $APT_ROOT.<br>
    The <a href="http://harness.pl">harness.pl</a> script will first read the harness.config file and based on the various parameters it will generate custom apt.conf and sources.list fies which will be stored in $APT_ROOT/etc/apt.<br>
<br>Step 3 : Now <a href="http://harness.pl">harness.pl</a> will execute the command $RUN_APT(details can be found at $APT_ROOT/README) update which again is a custom command which will retreive :<br>    Packages.gz and Sources.gz files available inside the repository and store them inside $APT_ROOT/lists. Suppose we are using the repository <a href="http://ftp.debian.org/">http://ftp.debian.org/</a>. Then :<br>
    Packages.gz is available at <a href="http://ftp.debian.org/debian/dists/$dist/$area/binary-$arch/">http://ftp.debian.org/debian/dists/$dist/$area/binary-$arch/</a><br>    Sources.gz is availabe at <a href="http://ftp.debian.org/debian/dists/$dist/$area/source/">http://ftp.debian.org/debian/dists/$dist/$area/source/</a><br>
        $dist refers to the distribution like sid, squeeze etc.<br>        $area refers to main, contrib or or non-free    <br>        $arch refers to the architecture like i386, amd64 etc.<br> Packages.gz file is specific to each architecture and contains the detailed information about the binary packages available on the repository while the Sources.gz file is the same for all the architectures and contains detialed information about the source packages available on the repository.<br>
<br>Step 4 : After the required files are downloaded, they will be parsed to extract the information about the binaries and packages. This piece of code is currently missing from the script. This functionality is already available in the old harness code. But, currently I am not using it due to some issues that were there and we are working on writing the code that will be able to address the past issues.<br>
What is basically missing here is the functionality to read the index files and create the data structure to hold the essential information.<br><br>Step 5 : The binaries and packages will be downloaded inside a temporary directory($APT_ROOT/downloads) and lintian will be used to analyze the package. After the analysis is done, files will be removed from the temporary directory.<br>
<br>--------------------Next Steps--------------------<br><br>Write the missing code.<br>Add the incremental runs feature.<br><br>----------------------------------------------------------------------------------------------------<br>
<div>
<br>[0] : <a href="http://wiki.debian.org/SummerOfCode2012/StudentApplications/AbhishekKumar" target="_blank">http://wiki.debian.org/SummerOfCode2012/StudentApplications/AbhishekKumar</a><br>[1] : <a href="http://anonscm.debian.org/gitweb/?p=users/abhi-guest/harness.git" target="_blank">http://anonscm.debian.org/gitweb/?p=users/abhi-guest/harness.git</a><br>
<br>----------------------------------------------------------------------------------------------------<br></div><br clear="all"><br>Abhishek Kumar<br>