Puritan: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{Software}}
{{Software}}
{{Build system}}
{{Build system}}
{{Stub}}
[http://dev.laptop.org/git/users/mstone/puritan Source code]. [http://dev.laptop.org/git?p=users/mstone/puritan;f=README;hb=master README].
[http://dev.laptop.org/git/users/mstone/puritan Source code]. [http://dev.laptop.org/git?p=users/mstone/puritan;f=README;hb=master README].


Puritan is a minimal tool for constructing OLPC disk images from sources including RPM repositories and build-stream descriptions.
Puritan is a minimal tool for constructing OLPC disk images from sources including RPM repositories and build-stream descriptions. It is loosely derived from a similar tool, [[Pilgrim]], written by David Zeuthen, John Palmieri, C. Scott Ananian, Dennis Gilmore, and Michael Stone and is being considered to replace [[Pilgrim]], along with [[livecd-tools]].


In the puritan framework, each and every build configuration is described by a git commit and can be authoritatively identified by a git tag pointing to that commit. Relationships between builds are recorded in the git version graph.
In the puritan framework, each and every build configuration is described by a git commit and can be authoritatively identified by a git tag pointing to that commit. Relationships between builds are recorded in the git version graph.
Line 11: Line 10:


If desired, the RPM and activity sources for each build can be archived in a separate git repository and can be strongly versioned along with the puritan snapshot that combined them by including the sources as a git submodule in the puritan commit that performs the build.
If desired, the RPM and activity sources for each build can be archived in a separate git repository and can be strongly versioned along with the puritan snapshot that combined them by including the sources as a git submodule in the puritan commit that performs the build.

It is loosely derived from a similar tool, [[Pilgrim]], written by David Zeuthen, John Palmieri, C. Scott Ananian, Dennis Gilmore, and Michael Stone.


The dependencies of puritan vary from branch to branch; however,
The dependencies of puritan vary from branch to branch; however,

Revision as of 02:38, 9 February 2008

Template:Build system Source code. README.

Puritan is a minimal tool for constructing OLPC disk images from sources including RPM repositories and build-stream descriptions. It is loosely derived from a similar tool, Pilgrim, written by David Zeuthen, John Palmieri, C. Scott Ananian, Dennis Gilmore, and Michael Stone and is being considered to replace Pilgrim, along with livecd-tools.

In the puritan framework, each and every build configuration is described by a git commit and can be authoritatively identified by a git tag pointing to that commit. Relationships between builds are recorded in the git version graph.

In the present layout, changes that are suitable for all builds should be included in the 'master' puritan branch. Build-specific configuration and instructions should go in other branches and these other branches should be regularly rebased on top of 'master' in order to produce highly readable history graphs.

If desired, the RPM and activity sources for each build can be archived in a separate git repository and can be strongly versioned along with the puritan snapshot that combined them by including the sources as a git submodule in the puritan commit that performs the build.

The dependencies of puritan vary from branch to branch; however,

 git-core
 python-2.5 python-msutils
 mtd-utils e2fsprogs  
 rpm yum 
 coreutils findutils util-linux wget gzip bzip2 cpio tar 

should cover you.

Puritan is invoked as follows:

 git clone git://dev.laptop.org/users/mstone/puritan
 cd puritan/puritan
 git checkout devel_jffs2
 sudo python main.py

Results are currently produced in puritan/puritan/jobdir. This is one of several options that are controlled by the per-branch puritan configuration file.

Clever suggestions on what a packaged version of puritan ought to install would be most welcome. (The build-instructions <-> git commit methodology makes for comprehensible source code but it does not clearly explain how to deploy the software.)