Dextrose build system
Dextrose uses olpc-os-builder, a tool create by OLPC to build official and customized system images. The Dextrose git repository contains, olpc-os-builder, local customizations specific to Dextrose, and fixes and enhancements waiting to be pushed upstream.
Build host requirements
The Dextrose build system is known to work on Fedora 14 x86_64 and Fedora 16 x86_64. The OS on the host system shouldn't matter because the build runs in a chroot environment. olpc-os-builder does not yet run on Ubuntu due to a missing dependency (bitfrost).
The initial build requires about 700MB of rpm packages and Sugar activity bundles. The packages and bundles are cached for futures builds.
yum upgrade yum install libtomcrypt-devel bitfrost crcimg make gcc mtd-utils python-imgcreate zip unzip zlib-devel lzma netpbm-progs git wget
rpm -i http://download.sugarlabs.org/dextrose/testing/dx3/rpms/x86_64/os/olpc-bootanim-tools-2.14-1.bernie1.fc16.x86_64.rpm
If you have a 32bit machine:
rpm -i http://download.sugarlabs.org/dextrose/testing/dx3/rpms/i386/os/olpc-bootanim-tools-2.14-1.bernie1.fc16.i686.rpm
Alternatively, you could rebuild the olpc-bootanim package from source:
yum install rpm-build netpbm-progs wget http://download.sugarlabs.org/dextrose/testing/dx3/rpms/source/olpc-bootanim-2.14-1.bernie1.fc16.src.rpm rpmbuild --rebuild olpc-bootanim-2.14-1.bernie1.fc16.src.rpm rpm -U ~/rpmbuild/RPMS/*/olpc-bootanim-tools-*.rpm
git clone git://git.sugarlabs.org/dextrose/mainline.git dextrose
cd dextrose make
echo 42 >buildnr-dx
Creating a build
time sudo ./osbuilder.py config/dextrose3-xo1-nognome.ini
The initial build may take several hours, depending on available bandwidth. Subsequent builds will take about 15-20 minutes on average desktop machines.
Upon completion, the new image will be available in build/output. Now copy it on a USB stick and test it on your target.
There's a set of configuration files for each variant of the images you can build. You only need to specify the top-level file (i.e. none of the
Because several build tools (olpc-os-builder, imgcreate and yum) run chrooted and nested into each other, error output is often obscure or misleading. Before digging into the code, try asking on IRC in case someone has already seen the same problem.
Publishing the images
Please do not publish signed builds unless they implement the OLPC anti-theft system.
Customizing your build
Dextrose is based on olpc-os-builder by Daniel Drake. You can fetch the latest source code into your Dextrose repository:
git remote add olpc git://dev.laptop.org/projects/olpc-os-builder git fetch olpc git log olpc/master
Customizing the core RPMs
building the Custom RPM
If you have a Fedora 11 i386 system, just type:
Otherwise, you need to build in a mock chroot:
make srpm sudo mock -r fedora-11-i386 --resultdir=. --rebuild mypackage.src.rpm
Uploading the Custom RPM
Building custom kernels
$ git clone http://dev.laptop.org/git/olpc-2.6/ $ cd olpc-2.6 $ setarch i386 make ARCH=i386 xo_1-kernel-rpm