Why Sunshine and Bug Fixing Go Together

I was having lunch at the recent LinuxCon and Plumbers conference with a colleague, bragging as usual about how much I love my home near Portland, Oregon. He was having none of it - he feels like Boulder, Colorado where he lives is superior and he was frankly being belligerent about it. (Imagine that, and he even worked for me for a while!) I suppose there are some things to like about Boulder, but I trudged through hip-deep snow there just last winter. In Portland, people claims it rains all the time, but this summer keeps going on and on.

It's good weather to fix bugs in.

Why? I think when the sky turns dark and rainy is a perfect time to sit down and think about feature development with absolutely no distractions. You stay inside anyway, so why not develop code? On the other hand, if you get frustrated with the way something was coded or finding a bug, it's nice to get outside and vent some steam.

Well, that's my theory anyway.

And we're fixing bugs like crazy for the next release of the Yocto Project. If you watch the oe-core mailing list or the project Bugzilla, you will see all kinds of activity as patches flow in and bugs get resolved.

We stated from the beginning that bug fixing would be a key part of the v1.3 release and indeed it will be. As a reminder, here are the themes we announced for this release:

  1. Continuity / Refresh
  2. Stabilization & Adoption
  3. Usability

And true to our word, we will have about 500 bugs fixed in this release. We also have a long list of improvements which will be visible to developers. Here is a list compiled for me by Paul Eggleton. In addition, we have made countless package updates, and a major improvement to both the command line bitbake interface and the graphical developer experience.

  • eglibc 2.16 - 
  • gcc 4.7 - 
  • Linux kernel 3.4 - 
  • Eliminated intermediate step when building cross compiler toolchain - 
  • Mesa can now provide GLES accelerated graphics without X11 - 
  • Relocatable SDK - 
  • yocto-bsp script for automating the initial parts of creating a new BSP - 
  • Buildhistory improvements: better performance, track postinst/postrm scripts - 
  • Reduce dependencies between debugging symbol packages - 
  • Added doc-pkgs IMAGE_FEATURES feature to install all documentation - 
  • Disable sharing shared state between machines using different distros by default to avoid glibc version problems (can be configured) - 
  • Python functions now consistently use four spaces for indentation - no more having to try to match the mix of tabs and spaces in your recipes - 
  • Enable EFI in grub installer - 
  • Fixes to allow qemu-native to be built on host systems without X11 (i.e. for console use only) - 
  • Enable python and perl scripting for perf as well as text-mode UI - 
  • Added ability to produce a companion SDK together with an image - 
  • Add bitbake functionality to force a rebuild of a recipe (new -C and improved -f options) - 
  • Improved mirror handling during fetch - allow mirrors of mirrors; handle errors more gracefully - 
  • Add script for producing "bootcharts" from buildstats so you can see the timeline of the build - 
  • Checksums for local files referred to in SRC_URI are now included in task signatures so that changing their contents causes the relevant tasks to be re-executed - 
  • Move from module-init-tools to kmod - 
  • Start to add regression tests for BitBake - 
  • Add create-recipe script to automate some of the parts of creating a brand new recipe - 
  • Add class-* overrides - particularly useful for target/cross/crosssdk but works with all classes 

That's a pretty significant list! I have been digging into the actual bug data lately, and will write something next time about it.

For more complete information about compiler optimizations, see our Optimization Notice.