OE-Bakery
From DorePublicWiki
Contents |
Purpose
The initial idea for developing OE-Bakery was to come up with a simple tool to make it easier to handle setup of OpenEmbedded development environments without layering Make on top of BitBake.
Design Goals
- It should be possible to setup any OpenEmbedded development environment with a single command
- It must be flexible enough to handle very complex environments
- It must be simple enough to be attractive to use for very simple environments (like fx. standard openembedded.org stable/2009 development environment)
- Build on top of current "best practices" of how to work with OpenEmbedded development environments
- Re-use existing infrastructure (like BitBake and Git) as much as possible
The tool
The resulting OE-Bakery tool is a small Python command-line tool called 'oe'. It supports a number of commands in a style similar to git, allowing for
- clone an existing OpenEmbedded development environment
- initialize an OpenEmbedded development environment based on a configuration file
- update the setup of an OpenEmbedded development environment
- build BitBake recipes and their dependencies (from any directory in the OpenEmbedded development environment)
- switching between multiple tmp directories
More features are planned, including
- manage tarball stash server
- pre-downloading of ingredients from tarball stash server
- combined status for all Git repositories in the OpenEmbedded development environment
Getting Started
Enough talking. Let's try it!
Installation
To install OE-Bakery you can
- Install it from Launchpad PPA (http://launchpad.net/~esben-haabendal/+archive/oebakery)
- Download it from http://dev.doredevelopment.dk/oe-bakery/ and install it using the included setup.py
- Install it directly from PyPI (http://pypi.python.org/pypi/oe-bakery/) using easy_install
If you are using Debian or Ubuntu, you most likely will want to use the Launchpad PPA method.
If you are using something else, it is up to you. Using easy_install is very easy (as the name suggests...), but you might want to consider the --prefix option, to avoid littering your /usr directory. If you don't have Python setuptools (provides easy_install), you can just download OE-Bakery and install with setup.py instead.
Installing on Ubuntu 9.10
To install OE-Bakery on Ubuntu 9.10, run the following commands:
sudo add-apt-repository ppa:esben-haabendal/oebakery sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 699DB381 sudo apt-get update sudo apt-get install python-oe-bakery
Installing on Debian or older Ubuntu distributions
Create /etc/apt/sources.list.d/ppa-oebakery.list with
deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu jaunty main deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu jaunty main
for Ubuntu 9.04 and Debian 5.0, or
deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu intrepid main deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu intrepid main
for Ubuntu 8.10, or
deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu hardy main deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu hardy main
for Ubuntu 8.04 LTS.
Then run
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 699DB381 sudo apt-get update sudo apt-get install python-oe-bakery
Installing with easy_install
Make sure you have setuptools installed. On Ubuntu:
sudo aptitude install python-setuptools
And then install OE-Bakery
sudo easy_install oe-bakery
Upgrading with easy_install
If using easy_install, upgrading to newest version of OE-Bakery is simply:
sudo easy_install -U oe-bakery
If easy_installed is not used, upgrading using tar.gz file is done by repeating the initial installation procedure as described above in "Installing using tar.gz file".
Installing from downloaded tarball
Download OE-Bakery distribution. Pick the newest version from http://dev.doredevelopment.dk/oe-bakery/
Unpack it, and change into the extracted directory, and run the installer:
sudo python setup.py install
Cloning a Bakery
To start working with the stable/2009 branch from OpenEmbedded, you can clone the OE-Bakery setup for this I have prepared:
oe clone git://dev.doredevelopment.dk/bakeries/stable-2009.git
FIXME: this has not been setup yet!!!
Building
from the directory created by the 'oe clone' command above, or any sub-directory underneat it:
oe bake bootstrap-image meta-toolchain
This will build target images and an external toolchain tarball.
The target images will be deployed in tmp/deploy/images
The toolchain tarball will be deployed in tmp/deploy/sdk
You can change the target machine, OpenEmbedded distribution and toolchain host machine you are building for in conf/local.conf
