llvm & clang 3.1 in Debian unstable + GSoC

Mai 24th, 2012

Released a few days ago, I am happy to announce that LLVM and clang 3.1 are already available in the Debian archive in Unstable. RC versions were already available for the last few weeks in Debian experimental. They are very likely to be part of wheezy.
We will soon try a new rebuild of the Debian archive with the version 3.1.

Talking about clang, a couple of months ago, I proposed a GSoC project to extend the Debian infrastructure in order to use clang instead gcc to build Debian packages. The goal is not to replace gcc but it is more about building packages with a new compiler.

With Paul Tagliamonte as co-mentor, Alexander Pashaliyski is going to work during the summer on this subject.

The final deliverables should be:

  • Build services modified to be able to use clang instead of gcc/g++
  • Integration into the Debian infrastructure (buildd.d.o, and similar services)
  • An easy way to switch of compiler between gcc/g++ and clang
  • A way to build a package with a different compiler (gcc, clang, intel compiler, etc)
  • Time permitting, a fully clang-built Debian installation

For now, Alexander is working on an installation of the wanna-build and buildd services in order to have a dedicated testing environment.

Report from the BSP in Paris

Mars 2nd, 2012

From February 17 to 19th 2012, between 10 to 30 hackers met at IRILL's offices to squash as many bugs as possible for the Wheezy release.

Besides about 42 pizzas, more than one hundred bugs (104 to be precise) have been fixed. Among them, 18 of them were fixed by removing old/unmaintained/deprecated packages from the Debian archive.

In a great atmosphere, one of the most important achievements of this BSP was that Yada, a deprecated packaging helper, finally passed away thanks to the efforts of Cyril Brulebois.

Thanks for all the contributors for making of this week end a success.

java-package: Replacement of sun-java6

Février 29th, 2012

Back in October 2011, I blogged about the removal of the sun-java6 package from the Debian archive.

Even if Openjdk 7 is just great, some corporations still need to use the non-free sun-java6 packages.
For perform this task, Cédric Pineau and I brought back an old package from the archive called java-package.

From the upstream release, for example jdk-6u*-linux-x64.bin (which the user will have download since Debian is no longer allowed to redistribute it), the command

make-jpkg ~/Downloads/jdk-6u31-linux-x64.bin

will generate a .deb which can be installed in the packaging system.

Obviously, new upstream releases will NOT be automatically updated.

This is far from perfect but it is temporary solution until everybody switch to the OpenJDK.

Rebuild of the Debian archive with clang

February 29th, 2012

Recently, I have been working on a side project for Debian. The goal was to rebuild of the Debian archive (the distribution) with clang, a new C/C++ compiler.

clang is now ready to build software for production (either for C, C++ or Objective-C). This compiler is providing many more warnings and interesting errors than the gcc suite while not carrying the same legacy as gcc.
This rebuild has several goals. The first one is to prove (or not) that clang is a viable alternative. Second, building a software with different compilers improves the overall quality of code by providing different checks and alerts.

The result are detailed and explained here:

When I had the idea to rebuild Debian with a new compiler, I was expecting many issues and bugs caused by clang but I have been surprised to notice that most of the issues are either difference in C standard supported, difference of interpretation or corner cases.
My personal opinion is that clang is now stable and good enough to rebuild most of the packages in the Debian archive, even if many of them will need minor tweaks to compile properly.
In the next few years, coupled with better static analysis tools, clang might replace gcc/g++ as the C/C++ compiler used by default in Linux and BSD distributions.
The clang developers are progressing very fast: 14.5% of the packages were failing with version 2.9 against 8.8% with version 3.0.
Several major steps in the clang adoptions have been made like chromium/chrome being built by default with clang, Xcode providing clang by default, FreeBSD working on the gcc -> clang switch, etc.
However, on the Debian point of view, one of the important step would be to make sure that clang manages all the Debian architecture/kernel (11 official, 6 unofficial)

Major changes in the Debian HDF5 packages

Janvier 18th, 2012

Yesterday, I uploaded hdf5 1.8.8 in unstable. This new version, which has been available in experimental for a while, is a major step in the HDF5 packaging.

For those who are using this package, besides the switch from version 1.8.6 to 1.8.8, the changes are the following:

  • Since upstream is now trying to keep a consistent ABI/API, packages have been renamed from libhdf5-xxx-X.Y.Z (X, Y and Z being the version number) to libhdf5-xxx-7 (7 being the version of the soname)
  • The package libhdf5-serial-* have been renamed to libhdf5-7 or libhdf5-dev
  • Symbol files have been added for all the libraries.
  • arm archs have also libhdf5-openmpi-dev
  • Support of HURD, armhf & s390x
  • Help is now up to date and the debian/html.tgz.uu removed (thanks to the source format v3.0, two source tarballs are now used)
  • A new package hdf5-helpers which contains h5cc, h5c++ and h5fc has been introduced
  • Fix many lintian warnings
  • Java HDF has been updated to version 2.8

More information about the transition: