Build system: Difference between revisions
(→Files produced by the build system: more details) |
(→Files produced by the build system: intro, files.txt.gz) |
||
Line 20: | Line 20: | ||
== Files produced by the build system == |
== Files produced by the build system == |
||
Over time the build system |
|||
The build system produces sets of files for each targeted OLPC model, some starting with the build's number such as <tt>os''883''</tt>. The filename extensions include: |
|||
The extensions produced by a build include |
|||
; activities.txt, libraries.txt |
; activities.txt, libraries.txt |
||
: the default [[Activities]] and [[Collections]] incorporated into the build. |
: the default [[Activities]] and [[Collections]] incorporated into the build. |
||
; .files.txt.gz |
|||
: a directory listing of the filesystem image, compressed. You can enter a command like `gunzip ''xxx''.files.txt.gz` in a terminal to uncompress this to ''xxx''.files.txt. |
|||
; .img |
; .img |
||
: JFFS2 file system image for the [[XO-1]]. The XO-1's [[firmware]] knows how to copy this to its NAND flash memory. |
: JFFS2 file system image for the [[XO-1]]. The XO-1's [[firmware]] knows how to copy this to its NAND flash memory. |
||
; ''xxx.yy''.md5 |
; ''xxx.yy''.md5 |
||
: cryptographic hash of the contents of ''xxx.y''. You can |
: cryptographic hash of the contents of the file ''xxx.y''. You can enter a command like `md5sum ''xxx.yyy'` in a terminal to verify that the file you downloaded is identical to the one created by the build. |
||
; .onu |
; .onu |
||
: UBIFS file system images for the XO-1? |
: UBIFS file system images for the XO-1? |
||
Line 36: | Line 37: | ||
: Information for performing a system update using [[olpc-update]] without requiring network access, see also .usb |
: Information for performing a system update using [[olpc-update]] without requiring network access, see also .usb |
||
; .tree.tar.lzma |
; .tree.tar.lzma |
||
: The contents of the filesystem image. If you carefully unpack this onto a partition on a USB drive or SD card and make some changes, you may be able to boot an XO from it. |
: The contents of the filesystem image. If you carefully unpack this onto a Linux partition on a USB drive or SD card and make some changes, you may be able to boot an XO from it. |
||
; .uim |
; .uim |
||
: UBIFS file system images for the XO-1 ? |
: UBIFS file system images for the XO-1 ? |
Revision as of 22:10, 7 November 2011
Description
The OLPC XO software build system has the requirement of combining software from various sources:
- A specific set of packages from Fedora Linux
- Some OLPC-specific packages which are not available in Fedora
- Some OLPC-forked packages where the versions in Fedora do not suit our needs exactly
- Sugar activities
- OLPC-specific configuration
The build system outputs software images which can be flashed to XOs for testing and deployment.
While OLPC produces generic software images, almost all deployments will want to add some level of customization (specific Sugar activities and software applications, default settings, etc). To allow for this, the build system can be easily installed and used by deployments and developers, allowing for easy local customisation.
Current build system
OS Builder is used for current and upcoming OLPC software releases. Compared to its predecessors, it makes extensive use of Fedora's build tools under a higher layer which allows for organisation of components and easy customization. It is also easier to install and use.
Files produced by the build system
The build system produces sets of files for each targeted OLPC model, some starting with the build's number such as os883. The filename extensions include:
- activities.txt, libraries.txt
- the default Activities and Collections incorporated into the build.
- .files.txt.gz
- a directory listing of the filesystem image, compressed. You can enter a command like `gunzip xxx.files.txt.gz` in a terminal to uncompress this to xxx.files.txt.
- .img
- JFFS2 file system image for the XO-1. The XO-1's firmware knows how to copy this to its NAND flash memory.
- xxx.yy.md5
- cryptographic hash of the contents of the file xxx.y. You can enter a command like `md5sum xxx.yyy'` in a terminal to verify that the file you downloaded is identical to the one created by the build.
- .onu
- UBIFS file system images for the XO-1?
- packages.txt
- the existing GNU/Linux packages assembled by the build system to produce the build. Many come from Fedora unchanged.
- .toc
- Information for performing a system update using olpc-update without requiring network access, see also .usb
- .tree.tar.lzma
- The contents of the filesystem image. If you carefully unpack this onto a Linux partition on a USB drive or SD card and make some changes, you may be able to boot an XO from it.
- .uim
- UBIFS file system images for the XO-1 ?
- .usb
- Information for performing a system update using olpc-update without requiring network access, see also .toc
- .zd2 , .zd4, .zd8
- special compressed images (??) of the XO-1.5's file system. The XO 1.5's firmware knows how to copy this to its onboard microSD. The number indicates the size of the microSD flash memory image in GB.
Earlier files
- .ext3.img
- raw disk image including partition table, suitable for copying onto a USB drive, see OS images for USB disks.
Historical build systems and their evolution
Pilgrim was the first build system, developed by OLPC and Red Hat, and used for OLPC's early software releases.
Puritan was developed after pilgrim started to show signs of outgrowing its design, calling for a cleaner and leaner system. However, it was never adopted officially by OLPC.
Image builder was developed as a post-processing tool to complement Pilgrim when OLPC decided to hand off part of the image customization process to deployments; it takes Pilgrim images and applies various customizations to them to produce a new output image. This started to outgrow its design when various parts of pilgrim needed to be copied into Image builder in order to be able to make more invasive customizations.
For initial software development for the XO-1.5 laptop, a desire to move to standard Fedora build tools emerged. fedora-xo was used to produce the first XO-1.5 software release, but the resultant build system was messy and left no systematic process for customizations by deployments. This lead to design goals for future build systems to balance use of Fedora build tools, organisation of OLPC's special requirements, and the ability for deployments to easily obtain and use the tool while making customizations to the image.
School Server Build Tools
See XS Building Software for details.