== Build host requirements ==
The Dextrose build system runs on '''Fedora 11 i386''' through '''Fedora 13 x86_64'''. The host system runs
_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.
The initial build requires about '''700MB''' of rpm packages and Sugar activity bundles. The packages and bundles are cached for futures builds.
== Customizing your build ==
The topic of is too vast to discuss in detail here. Start by reading
in the olpc-os-builder tree.
Then, as needed, read the various <tt>README</tt> files contained in the
[http://git.sugarlabs.org/projects/dextrose/repos/mainline/trees/master/modules modules] directory.
Being a Build Master involves knowledge of many workflows, including:
* Building Sugar in [http://wiki.sugarlabs.org/go/Development_Team/Jhbuild sugar-jhbuild]. * Dealing with yum and [http://www.rpm.org/wiki/Docs rpm]. * Understanding the [http://fedoraproject.org/wiki/Packaging/Guidelines Fedora packaging] workflow and conventions. * Creating yum package repositories with <tt>[http://createrepo.baseurl.org/]</tt>. * Uploading activities to [http://activities.sugarlabs.org]. * General understanding of the Linux system plumbing infrastructure: [http://www.kernel.org/ kernel], [http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html udev], [http://www.freedesktop.org/wiki/Software/dbus dbus], [http://www.freedesktop.org/wiki/Software/DeviceKit DeviceKit], [http://www.freedesktop.org/wiki/NetworkManager NetworkManager], [http://www.x.org/wiki/ Xorg]... * Flashing laptops and debugging any problems * Interaction with the Sugar and OLPC community to solve issues and minimize our divergence from the official builds. == Upstream == Upstream code comes from dev.laptop.org :
git remote add olpc git://dev.laptop.org/projects/olpc-os-builder
git log olpc/master
Building custom RPMs ==
* Go to the <tt>rpms/PACKAGENAME</tt> in the dextrose tree
* Increase the release number after each change.
* <tt> make i586 </tt>
* Upload rpm to a yum repository and add it to the ini file used by the OLPC OS builder.
* To automate this step, we have a rule <tt>make uploadrpm</tt> which points at the Dextrose repository. Edit <tt>rpms/common/Makefile.common</tt> or <tt>rpms/common/uploadrpm</tt> to retarget this rule to your repository.
== Building custom
OLPC kernels ==
$ git clone http://dev.laptop.org/git/olpc-2.6/
$ cd olpc-2.6
$ setarch i386 make ARCH=i386 xo_1-kernel-rpm