[Soc-coordination] Report 0 - Clang for build services

Alexander Pashaliyski al.pashaliyski at gmail.com
Sun Jun 3 21:22:35 UTC 2012


I'm working on the project "Clang for build services". I posted detailed description in my blog - [0].

I discussed with the mentors the details of the project. We came to a clear implementation plan:

---- ---- ---- ----
1) Look for all the documentation available about wanna-build team, sbuild, etc.

2) Set up wanna-build team & sbuild on a server and document it.

3) Consider a new potential package which would contain
c-compiler-default, c++-compiler-default, fortran-compiler-default (like default-jdk or default-gcc)

4) Update sbuild in a generic way to be able to change the compiler.

5) Select 20 C, C++, Fortran, ObjC and Java packages (some which hardcode the compilers in debian/rules).

6) Put these 20 packages in the wanna-build and shows that:
  - it builds with clang
  - if CC=gcc (and others) are hardcoded, it fails with the a clear error message

7) Get in touch with the wanna-build team to:
 - get a new suite called clang "https://buildd.debian.org/status/package.php?p=llvm-3.0"
 - connect our work to the debian infrastructure

8) Provide patches to the PTS to have "build: clang"
Example: http://packages.qa.debian.org/s/scilab.html

9) Loop between 4 => 8 with the same tasks with the Intel compilers (which includes Fortran).

10) Use dragonegg for the unsupported languages (fortran, ada, go, etc.)

11) Provide repositories with clang-built or intel-built packages.
---- ---- ---- ----

I contacted the Alioth admin team via the web site, requesting to use their server for my project "Clang for build services". I still haven't received response.

Currently I use two personal servers for the project development. On the first, I installed Squeeze and on the second - Wheezy.

In the process of installing and configuring wanna-build, I had lots of problems. Because there's almost no documentation (and some of the existing is outdated) on the subject, I had to figure out how everything works by reading the source code and asking people on IRC and mailing lists. I use the most recent version (from git) and since it's not stable, there were some problems and bugs. In the process I fixed several bugs in order to set the system up. I also documented every step so now there's documentation on everything I have done. I uploaded the documentation on installing and configuring wanna-build on [1].

I installed and configured reprepro on a local machine in order to use it with wanna-build. In the process I made step-by step instructions. I wrote a script to feed the wanna-build database from the local repository - [2]. Instead of connecting to the official repository, it uses a local repository which path is specified in a configuration variable. It's an addition to the available triggers of wanna-build. I still have some work to do on it. While writing the script I fixed a bug in wanna-build - [3].

I installed and configured sbuild. The lastest version of sbuild contains filters but they don't work. Their purpose is to keep only the necessary variables in the environment, but apparenly they're not read from the configuration file. That leaves the filter list empty which causes the environment to be empty. I had to disable them to keep my work going. Later I'll consider how to solve this problem.

I installed buildd. I had some problems setting it up - there was a bug in the scripts related to parsing the configuration file. I was pointed to a helpful bug report on the topic and with some additional changes I eventually got it working. In the process I had to read some of the source code of buildd.

Next I'm going to finish the script I started and the documentation on setting up sbuild and wanna-build.

==== ====

[0] http://alex.debian.bg/
[1] http://wiki.debian.org/DebianWannaBuildInfrastructureOnOneServer
[2] http://wiki.debian.org/DebianWannaBuildInfrastructureOnOneServer?action=AttachFile&do=get&target=trigger.local
[3] http://wiki.debian.org/DebianWannaBuildInfrastructureOnOneServer?action=AttachFile&do=get&target=trigger_common.patch


Regards,
Alexander Pashaliyski




More information about the Soc-coordination mailing list