Buildroot is a embedded Linux system build system. It automates the process of downloading, configuring, compiling and installating all the components of an embedded Linux system, from Busybox to more complicated software stacks using Gtk, Qt, X.org, Gstreamer, etc. Buildroot is easy to use and extend, making it a nice choice for small to medium-sized embedded Linux systems.
As promised by the fixed-release schedule, a 2010.02 release has been published on Friday, with numerous improvements over the previous version 2009.11, many of which are part of the general cleanup process that the project is doing since the beginning of 2009. These improvements are detailed in the project CHANGES file.
Thomas Petazzoni, from Free Electrons, implemented several of these improvements :
- Creation of a package infrastructure for non-autotools packages. Buildroot had for a long time an infrastructure to factorize the code needed to build packages based on the autotools build systems. But all other packages were using hand-made Makefiles, which were hard to write and generated a lot of code duplication. Therefore, we have introduced an infrastructure that makes adding new packages much easier, and which allows us to cleanup the existing codebase significantly by factorizing a lot of common code. The autotools infrastructure has also been reworked on top of the generic infrastructure to avoid code duplication as well. At the same time, we have significantly improved the documentation on how to add new packages. This infrastructure is a building block that will allow us to easily add more features to all packages in Buildroot (such as package generation).
- Removal of the external toolchain source mechanism, which was merged with the normal toolchain building procedure. This special casing was implemented to allow the compilation of AVR32 toolchains, but such an additional complexity wasn’t needed. Now, Buildroot continues to build AVR32 toolchains as it used to do, but the code is much cleaner. Another illustration of our large cleanup effort.
- Many, many, many fixes to different packages, many of them to ensure that we do not depend on development packages being installed on the host. This is very important to ensure that our build procedure is as independent as possible from the development machine configuration.
From the list of contributors, ordered by the number of patches, Thomas Petazzoni of Free Electrons has been the first Buildroot contributor for this last release :
$ git shortlog -e -n -s 2009.11..2010.02 (removed e-mail addresses) 139 Thomas Petazzoni 124 Peter Korsgaard 26 Lionel Landwerlin 23 Gustavo Zacarias 7 Julien Boibessot 4 Nigel Kukard 4 Sven Neumann 2 Anders Darander 2 Chris Packham 2 Daniel Mack 2 H Hartley Sweeten 2 Richard van Paasen 2 Will Wagner 2 William Wagner 2 Yann E. MORIN 1 Cameron Hutchison 1 Clark Rawlins 1 Francisco Gonzalez 1 Francisco Gonzalez Morell 1 Hans-Christian Egtvedt 1 Lionel Landwerlin 1 Ormund Williams 1 Rob Alley 1 Sagaert Johan 1 grante
For the next release, we will work on additional cleanup of Buildroot and particularly the
target/ directory, which contains the code to build the Linux kernel, different bootloaders, and to generate the final root filesystem image in various formats. Improving support for external toolchains is also on our TODO list : supporting multilib toolchains such as the CodeSoucery toolchain, and fixing a long-standing issue with libtool.