Dextrose/Building: Difference between revisions
m edit for readability |
m edit for readability |
||
| Line 5: | Line 5: | ||
== Build host requirements == | == Build host requirements == | ||
The Dextrose build system runs on '''Fedora 11 i386''' through '''Fedora 13 x86_64'''. The host system runs | 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. | The initial build requires about '''700MB''' of rpm packages and Sugar activity bundles. The packages and bundles are cached for futures builds. | ||
| Line 46: | Line 46: | ||
== Customizing your build == | == Customizing your build == | ||
olpc-os-builder is documented at | |||
[http://git.sugarlabs.org/projects/dextrose/repos/mainline/trees/master/doc/README README] | [http://git.sugarlabs.org/projects/dextrose/repos/mainline/trees/master/doc/README README] | ||
in the olpc-os-builder tree. | in the olpc-os-builder tree. The modules are documented in <tt>README</tt> files in the | ||
[http://git.sugarlabs.org/projects/dextrose/repos/mainline/trees/master/modules modules] directory. | [http://git.sugarlabs.org/projects/dextrose/repos/mainline/trees/master/modules modules] directory. | ||
=== Upstream Code === | |||
Dextrose is based on upstream olpc code located at dev.laptop.org. | |||
git remote add olpc git://dev.laptop.org/projects/olpc-os-builder | git remote add olpc git://dev.laptop.org/projects/olpc-os-builder | ||
| Line 79: | Line 59: | ||
git log olpc/master | git log olpc/master | ||
== | === Customizing the core RPMs === | ||
* Go to the <tt>rpms/PACKAGENAME</tt> in the dextrose tree | * Go to the <tt>rpms/PACKAGENAME</tt> in the dextrose tree | ||
| Line 87: | Line 67: | ||
* Increase the release number after each change. | * Increase the release number after each change. | ||
=== building the Custom RPM === | |||
make i586 | |||
=== Uploading the Custom RPM === | |||
* Upload rpm to a yum repository and add it to the ini file used by the OLPC OS builder. | * Upload rpm to a yum repository and add it to the ini file used by the OLPC OS builder. | ||
| Line 93: | Line 77: | ||
* 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. | * 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 | === Building custom kernels === | ||
$ git clone http://dev.laptop.org/git/olpc-2.6/ | $ git clone http://dev.laptop.org/git/olpc-2.6/ | ||
$ cd olpc-2.6 | $ cd olpc-2.6 | ||
$ setarch i386 make ARCH=i386 xo_1-kernel-rpm | $ setarch i386 make ARCH=i386 xo_1-kernel-rpm | ||
== Resources == | |||
* [http://wiki.sugarlabs.org/go/Development_Team/Jhbuild Sugar-jhbuild] - The Sugar Labs build system. | |||
* [http://www.rpm.org/wiki/Docs Rpm] - The Redhat package manager. | |||
* [http://fedoraproject.org/wiki/Packaging/Guidelines Fedora packaging] - Fedora packaging workflow and conventions. | |||
* [http://createrepo.baseurl.org/] - The yum package repositories builder. | |||
* [http://activities.sugarlabs.org] - The Sugar Labs activities library. | |||
* 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. | |||