Differences between revisions 57 and 58
Revision 57 as of 2013-05-12 09:40:05
Size: 5928
Editor: ?obounaim
Revision 58 as of 2013-08-19 14:43:17
Size: 0
Editor: ?obounaim
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#language en
'''GSOC13 project : scan-build on the Debian archive'''

 * '''Name''': Oussama Bounaim
 * '''Email''': o.bounaim[at]gmail[.]com
 * '''IRC''': obounaim on freenode
 * '''Time Zone''': UTC + 1

 * '''Background''': I am a 21 years old, a fifth year student at the National Computer Science School "ESI" in Algiers, Algeria. Currently pursuing my Engineer's Degree in computer systems. I have been using Linux since my first days in university back in 2008, since then Linux became my primary OS in my daily work. During my university years, one of the courses that I have taken is about compilers, lexical and syntactical analyzer, I also had the chance to work on various academic Linux-based projects using C and C++ programming languages, and build tools like cmake and make. Bash scripting and HTML/CSS are also on my list of skills. Since October 2012 I have been contributing to Ubuntu (for Quantal, Raring and now for Saucy) by doing some packaging work (Sync and merge) with some great tools like pbuilder, pbuilder-dist, cowbuilder, cowbuilder-dist, dpkg-buildpackage, quilt (patch management system), bzr and the Launchpad platform https://launchpad.net/~obounaim, and fixing some small bugs found in [[Harvest|http://harvest.ubuntu.com/]]. During the last days I had the chance to discuss with Sylvestre about scan-build and some aspects of the project. I had the chance also to get the source of http://alioth.debian.org/projects/daca using Git and take a deep look at it, which I think is a good start for the project.
I also subscribed to the mailling lists of the project:
     * daca-devel@lists.alioth.debian.org
     * daca-general@lists.alioth.debian.org
After completing the implementation of this project as part of Gsoc 2013, I plan to continue contributing to Debian, by maintaining the project and developing it further.

 * '''Project title''': scan-build on the Debian archive.

 * '''Project details''': The main purpose of this project is to rebuild the whole Debian archive using scan-build and publish the results on a common interface [[daca|http://qa.debian.org/daca/]] . Scan-build is a program provided in the [[clang|http://clang.llvm.org/]] package. It provides an excellent static analyzer for C, C++ and Objective-C code. Scan-build can find hidden bugs that a compiler cannot find.

In order to make this process fully automatic a couple of scripts have to be added to http://alioth.debian.org/projects/daca, they basically need to do the following:

        1. Get the source package from the official Debian archive.

        2. Build the binary package using scan-build.

        3. Integrate the results with the daca web page.

 * '''Synopsis''': Rebuild the whole Debian archive using scan-build and publish the results on the daca web interface.

 * '''Benefits to Debian''' Not only Debian will benefit from the project by finding hiding bugs in packages but also other distribution based on Debian like Ubuntu and of course upstream projects will get bug reports which is good for everybody.
         * Increase the stability and the security of the Debian distribution.
         * Find bugs in packages early before it affects users.
         * Ensure higher quality code.

 * '''Deliverables''':
         * A webpage in daca with reports of all Debian packages rebuild with scan-build.
         * A webpage for packages that failed to build with scan-build.
         * A chroot build environment to build packages using scan-build.
         * A fully automatic system that build packages using scan-build.
 * '''Project schedule''':
          * '''The month of June:''' Working hard on my graduation project, so I will not be able to write code but I can read some documentation. After that I will be fully available to work on the project and writing code..

      * '''July 1st - mid-July:'''
          * Reading documentation about the buildd build infrastructure and the Debian packaging system in order to integrate scan-build in the build process.
          * Read documentation about the internals of the daca infrastructure and how to add a new tools to it.
          * Refreshing my web coding skills PHP, HTML/CSS.

      * '''Mid-July - mid-August:'''
          * Integrate scan-build in the Debian packaging system.
          * Build some packages and publish the results to daca.
      '''Details:''' Write the required script to setup a chroot build environment in order to build packages using scan-build. cowbuilder should be used in order to have a very fast chroot environment

      * '''Mid-August - mid-September:'''
          * Make the process fully automatic.
          * Scan the entire Debian archive.
          * Upload the results to daca.
      '''Details:''' The process should be aware when a package has been updated or a new one has been uploaded. In the first case the process should delete the previous report for this package (or archive it) and generate new one for the new version of the package. For packages that failed to build with scan-build a dedicated webpage will be available in order to investigate the cause of the failure.

 * '''Exams and other commitments''': I will be graduated late this June, So until then I will be busy with my graduation project (I will not be able to write code, but I can read some documentation). After that (the beginning of July)I will be fully available to work on the Gsoc project.
 * '''Other summer plans''': The only summer plan that I have this year is Gsoc 2013.
 * '''Why Debian?''': I have a good experience with Debian and Debian based distro like Ubuntu. Besides Debian is the father of many Linux distributions out there like Ubuntu, knoppix, ..., so contributing some code to Debian will get everybody to benefit from it.
 * '''Are you applying for other projects in SoC?''' No, not this year.