Pilgrim: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{Software}}

Pilgrim is a disk-image compiler. This means that it produces flashable disk images for OLPC XOs from a collection of RPMs and dirty tricks. It is run by OLPC on servers like xs-dev.l.o and pilgrim.l.o.
Pilgrim is a disk-image compiler. This means that it produces flashable disk images for OLPC XOs from a collection of RPMs and dirty tricks. It is run by OLPC on servers like xs-dev.l.o and pilgrim.l.o.


Line 29: Line 27:
* How do you enumerate the available branches? I.e. if you don't want to rely on the documentation being kept up to date...
* How do you enumerate the available branches? I.e. if you don't want to rely on the documentation being kept up to date...
* Where can one find the streams.d directory?
* Where can one find the streams.d directory?

[[Category:Build system]]
[[Category:Build system]]

{{Software}}

Revision as of 04:24, 22 August 2008

Pilgrim is a disk-image compiler. This means that it produces flashable disk images for OLPC XOs from a collection of RPMs and dirty tricks. It is run by OLPC on servers like xs-dev.l.o and pilgrim.l.o.

More information on pilgrim is at Building custom images.

Details

Source code

Pilgrim is composed of two large and two small scripts and many configuration files.

 pilgrim              # user-interface
 pilgrim-autobuild    # implementation
 build-one            # build the current branch
 make-repos           # touch up yum repositories

The most important branch is "autobuild". This is where changes deemed suitable for all build branches should be merged. See Pilgrim Commit Policy.

The other branches - joyride, meshtest, xtest, and rainbow store branch-specific data like which yum repositories to compose into the image, which packages to pull, which activities to include, and so on.

These data are mostly recorded in

 streams.d/olpc-branch.conf                    # a few important config variables
 streams.d/olpc-development-yum-install.conf   # yum repositories to compose, package exclusions
 streams.d/olpc-development.stream             # lists of packages and activities to install

Questions:

  • How do you enumerate the available branches? I.e. if you don't want to rely on the documentation being kept up to date...
  • Where can one find the streams.d directory?