On the last day of August, just in time, the 2010.08 version of Buildroot has been released. For the record, Buildroot is an easy-to-use embedded Linux build system: it can build your toolchain, your root filesystem with all its components (Busybox, libraries, applications, etc.), your kernel and your bootloaders, or any combination of these components.
Amongst the interesting changes in this version :
- Complete rewrite of the bootloader build code. It contained a lot of legacy, unused and unclear stuff, it is now much easier to use and extend. We’ve removed support for Yaboot and added support for the new Barebox bootloader, and all the code to support AT91Bootstrap, AT91DataFlashBoot, U-Boot, Grub and Grub 2 has been rewritten.
- Complete rewrite of the Linux kernel build code. It was also complicated to use, with an horribly complicated kernel version selection mechanism, the new code is much easier to configure and use.
- The configuration file .config is now located in the out-of-tree directory when the
O=option is used. So typically, for an out-of-tree build (which are very convenient when using the same Buildroot source tree for different projects/tests), you could do :
mkdir ~/myoutput ; make O=~/myoutput menuconfig ; make O=~/myoutput
- Support for building NPTL toolchains with uClibc, using the latest uClibc snapshots.
- Support for the gconfig Gtk-based configurator, in addition to the already available menuconfig and xconfig
- A particular effort has been put on fixing many of the bugs in our Bugzilla, improving robustness thanks to automated random builds, and converting even more packages to the generic and autotools infrastructure
- Various things have also been deprecated: support for the CRIS, IA64, Sparc64 and Alpha architectures, support for Gtk over DirectFB (which is at the moment not supported upstream), Java support (no maintainer has volunteered to maintain this in Buildroot)
- Many components have been bumped to newer versions
- The shared configuration cache, which allowed to speed up the configuration of different packages, has been disabled by default, since it was causing a lot of problems with certain package configurations
I’ve again contributed to a significant portion of this release, being the author of the bootloader build code cleanup, the Linux kernel build code rewrite, leading an effort to reduce the number of outstanding bugs in our Bugzilla and many other little things. The contributors for this release are shown below :
175 Peter Korsgaard 168 Thomas Petazzoni 38 Gustavo Zacarias 18 cmchao 8 Luca Ceresoli 7 Paul Jones 6 Lionel Landwerlin 6 Malte Starostik 5 Yann E. MORIN 3 Julien Boibessot 3 Khem Raj 2 Dmytro Milinevskyy 2 Francois Perrad 2 Nick Leverton 2 Peter Huewe 2 Stanislav Bogatyrev 1 Baruch Siach 1 Bjørn Forsman 1 Daniel Hobi 1 Darcy Watkins 1 Darius Augulis 1 H Hartley Sweeten 1 Karl Krach 1 Kelvin Cheung 1 Ossy 1 Sagaert Johan 1 Simon Pasch 1 Slava Zanko 1 Thiago A. Correa 1 Will Wagner 1 Yegor Yefremov
For the next release, there are already a few things in the pipeline :
- Cleanup of all the board support code in Buildroot, in order to cleanly add support for more boards like BeagleBoard, Qemu boards, Calao boards, etc. We’ll use the new minimal defconfig mechanism used by the kernel. I’ve already started working on this
- Cleanup of the package download process, to support Git and SVN download. The code has already been written by Maxime Petazzoni, reviewed on the list, so I expect it to be included fairly soon
- Rewrite of libtool handling code, to remove some of our ugly libtool hacks. The code is currently being worked on by Lionel Landwerlin
- Support for compiling toolchain using Crosstool-NG as a backend. The code is currently being finalized by Yann E. Morin, the author of Crosstool-NG
- Further work on package uninstallation, clean partial rebuild. Some work has been started by Lionel Landwerlin, but it needs some discussion
- Continue the conversion of packages to the generic and autotools infrastructures
- I have also a ton of other things on my TODO-list : rework gdb/gdbserver support with external toolchains, rework the configuration of IPv6/RPC/locale/etc. with external toolchains, set up a Wiki-based Buildroot website with tutorials and better documentation, clean up the toolchain build process, reduce the number of “enhancement” bugs waiting in our Bugzilla, etc.
As Peter Korsgaard, Buildroot maintainer, said in the 2010.08 announcement: The next release is going to be 2010.11. Expect the first release candidate in late October and the final release at the end of November..
It is worth noting that we will be having a Buildroot Developer Day, on Friday 29th October, right after Embedded Linux Conference Europe. At least Peter Korsgaard, Lionel Landwerlin, Yann E. Morin and myself should be there.