Joachim Breitner

The carbondioxide footprint of Debian's Haskell packages

Published 2013-04-24 in sections English, Debian, Haskell.

By now, Debian ships quite a lot of Haskell packages (~600). Because of GHC's ABI volatility, whenever we upload a new version of a library, we have to rebuild all libraries that depend on that. In particular, if we upload a new version of the compiler itself, we have to rebuild all Haskell library packages. So we have to rebuild stuff a lot. Luckily, Debian has a decent autobuilding setup so that I just need to tell it what to rebuild, and the rest happens automatically (including figuring out the actual order to build things).

I was curious how much we use the buildd system compared to other packages, and also how long the builders are busy building Haskell packages. All the data is in a postgresql database on, so with some python and javascript code, I can visualize this. The graphs show the number of all uploads by autobuilder on the amd64 architecture, with haskell uploads specially marked, and the second graph does the same for the build time. You can select time ranges and get aggregate statistics for that time span.

During the last four days a complete rebuild was happening, due to the upload of GHC 7.6.3. During these 2 days and 18 hours building 537 packages took 48 hours of build time and produced 15kg of CO2. That is 94% of all uploads and 91% the total build time. The numbers are lower for the whole of last year: 52% of uploads, 31% of build time and 57kg of CO2. (The CO2 numbers are very rough estimates.)

Note that amd64 is a bit special, as most packages are uploaded on this architecture by the developers, so no automatic builds are happening. On other architectures have, every upload of a (arch:any) package is built, so the share of Haskell packages will be lower. Unfortunately, at the moment the database does not provide me with a table across all architectures (and I was too lazy to make it configurable yet).


Do you want to let buy each team to by CO_2 certificates? Considering the current price tag according to your calculation this would make 1-2 Eurocent.

#1 Andreas Tille am 2013-04-25
Interesting work :-)

One question - what assumptions / estimates do you make when converting from build time to CO2 output? Do you know what the power consumption is for each machine?
#2 Steve McIntyre (Homepage) am 2013-04-25
See the footnote on the page with the graphs, it lists the wattage and CO2/kWh that I assume – very rough estimates, of course.
#3 Joachim Breitner (Homepage) am 2013-04-25

Have something to say? You can post a comment by sending an e-Mail to me at <>, and I will include it here.