Another of GSoC ideas that I volunteered to mentor for our GSoC was adding support for BitBake to the openSUSE Build Service. In this post I want to talk about why do I think that BitBake support for openSUSE Build Service will be useful and why do I think that OpenEmbedded is actually pretty cool.
BitBake is a build system used mainly by OpenEmbedded. In a way it is kind of similar to what openSUSE does for us. It takes one sources and makes it possible to build them for many distributions. There are some differences though. Let’s start with few notes a out OpenEmbedded. BitBake description will make more sense once you’ll know what OpenEmbedded is. It’s a meta distribution. You can think about it as a common code base for multiple distributions. It has many packages. It also contains distribution settings. Same source can be built in different ways for various distributions. Each distribution can choose which version of which package does it want to have in which release. It can choose package management system, preferred providers for virtual packages and many other things. BitBake is then used to build whole distribution out from BitBake recipes. From recipes that all maintainers from all distributions work on together at one place. And yes, it doesn’t support spec or dsc files. You have to write .bb files. But it will build .rpm, .deb, .opk or .tgz out of it. All from one recipe. And that recipe is easier to write and more powerful then spec. If you never tried packaging for Debian, trust me that it is also much easier than Debian packaging. I actually had a presentation on openSUSE Conference 2009 about what can be done in BitBake and how it makes packagers life easier. Let’s quickly mention few features that BitBake has.