Build system: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:


1. Scott Ananian (c_scott)
1. Scott Ananian (c_scott)

2. Michael Stone (m_stone)
2. Michael Stone (m_stone)

3. Chris Ball (cjb)
3. Chris Ball (cjb)


Line 28: Line 30:


2. The output of the build system is currently located under the [http://xs-dev.laptop.org/~cscott/olpc/streams/ streams root]
2. The output of the build system is currently located under the [http://xs-dev.laptop.org/~cscott/olpc/streams/ streams root]

== Implementation Details ==

The build system we want to have consists of the following components:

<pre>
/------\
| F7 yum |--------+
| repos | |
\------/ V
/--------\ +--------+ +----------+ +---------+ /------\
| upstream | | distro | | pkg build| |compose | | stable |
| src |-->| SCM |-->| system |-->| tools |-->| rainbow|
| repos | | (CVS) | | (Koji) | |(joyride)| | xtest |
\--------/ +--------+ +----------+ +---------+ \------/
^ ^ ^
/--------\ | | |
|patches |-----+ | + - - - - - - - + |
\--------/ | | dropbox | |
+----->| system |----+
/--------\ | | (public_rpms) |
| olpc | | + - - - - - - - +
| sources |-------+
| (GIT) |
\--------/


|-----------| |----------------------------| |-----------------------|
sources package maintenance package composition
CVS,GIT Koji, Mock, rpmbuild mash, pilgrim, ChangeLogs
</pre>

The one we actually have is fairly similar but the package-construction step is done partially in [https://fedoraproject.org/wiki/Koji Koji] and partially by individual package maintainers using tools like [https://fedoraproject.org/wiki/Projects/Mock Mock] and rpmbuild.

Revision as of 01:55, 27 October 2007

Maintainers

1. Scott Ananian (c_scott)

2. Michael Stone (m_stone)

3. Chris Ball (cjb)

Build Branches

We currently have four build branches: joyride, meshtest, xtest, and rainbow.

If you are trying to perform a delicate piece of integration for which it would be helpful to have a separate build, please contact one of the build system maintainers.

Instructions for Use

To add a completely new piece of software (either a new activity or a new package) to a build, two steps are necessary.

1. Modify streams.d/olpc-development.conf to mention the new activity or new package.

2. Include a source code package (.xo or .src.rpm) and a binary package (.xo or .rpm) in ~/public_rpms/<build>/ on dev.laptop.org.

3. Update ~/public_rpms/<build>/ChangeLog to describe the changes made by the packages you are introducing.

Output from the Build System

The build system produces things:

1. An RPM repository, currently located under the repository root

2. The output of the build system is currently located under the streams root

Implementation Details

The build system we want to have consists of the following components:

                              /------\
                             | F7 yum |--------+
                             | repos  |        |
                              \------/         V
 /--------\    +--------+   +----------+   +---------+    /------\
| upstream |   | distro |   | pkg build|   |compose  |   | stable |
|    src   |-->|  SCM   |-->|  system  |-->| tools   |-->| rainbow|
|   repos  |   | (CVS)  |   |   (Koji) |   |(joyride)|   | xtest  |
 \--------/    +--------+   +----------+   +---------+    \------/
                ^  ^                           ^
 /--------\     |  |                           |
 |patches |-----+  |      + - - - - - - - +    |
 \--------/        |      |  dropbox      |    |
                   +----->|  system       |----+
 /--------\        |      | (public_rpms) |
|   olpc   |       |      + - - - - - - - +
|  sources |-------+         
|   (GIT)  |
 \--------/


|-----------| |----------------------------| |-----------------------|
   sources         package maintenance          package composition
   CVS,GIT         Koji, Mock, rpmbuild       mash, pilgrim, ChangeLogs

The one we actually have is fairly similar but the package-construction step is done partially in Koji and partially by individual package maintainers using tools like Mock and rpmbuild.