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 _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 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 == |
| | | |
− | The topic of is too vast to discuss in detail here. Start by reading
| + | 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. Then, as needed, read the various <tt>README</tt> files contained in the | + | 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. |
| | | |
− | Being a Build Master involves knowledge of many workflows, including:
| + | === Upstream Code === |
| | | |
− | * Building Sugar in [http://wiki.sugarlabs.org/go/Development_Team/Jhbuild sugar-jhbuild].
| + | Dextrose is based on upstream olpc code located at dev.laptop.org. |
− | | |
− | * 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 remote add olpc git://dev.laptop.org/projects/olpc-os-builder |
Line 79: |
Line 59: |
| git log olpc/master | | git log olpc/master |
| | | |
− | == Building custom RPMs == | + | === 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. |
| | | |
− | * <tt>make i586</tt>
| + | === 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 OLPC kernels == | + | === 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. |