XS Building Software
- This page refers to obsolete versions of the XS (v0.4 and earlier). Please use newer versions of the XS software.
- For building XS images, see XS Builder.
 Setting up a build environment
The machine you are building the live CD on will need to have the livecd-tools and kudzu packages installed. This is easy if it has Fedora 7 installed on it:
yum install livecd-tools kudzu
If building an RPM, you need a directory for building the RPMs:
mkdir -p rpmdir/BUILD rpmdir/SOURCES rpmdir/SPECS rpmdir/RPMS rpmdir/SRPMS
You also need to point RPM to that directory. Add a line, %_topdir <build directory path> to a file, .rpmmacros in your home directory. This may be done using:
echo "%_topdir /path/to/rpmdir" >> ~/.rpmmacros
These last two steps are not needed for building a livecd image.
 Downloading the latest software
Only one software package, xs-livecd, needs to be downloaded to build a LiveCD. We only offer git access. Our repositories are at git://dev.laptop.org/projects/.
mkdir xs-build cd xs-build git-clone git://dev.laptop.org/projects/xs-livecd xs-livecd
Most changes to a server involve adding a package or changing a configuration file. Officially, these usually involve changing the following packages (unofficially, you can easily add packages by modifying the kickstart file used to build a livecd):
- xs-conf - The configuration files overriding those specified by packages (but not anaconda...)
- xs-pkgs - This meta-package pulls in the core system and services
git-clone git://dev.laptop.org/projects/xs-pkgs xs-pkgs git-clone git://dev.laptop.org/projects/xs-config xs-config
 Building a package
After making any necessary changes to the files in a package, you need to change the version number. This is defined in two places (free dinner to the first person to fix this), the Makefile and the spec file. You must at least increment the release number!
If contributing your change back to OLPC, don't forget to git add the Makefile and the package.spec file before commiting and pushing.
Now build the RPM (as yourself, not root). The RPMDIR should be the same as the one in your ~/.rpmmacros file.
make RPMDIR=rpmdir rpm
Copy the latest kickstart file in xs-livecd/kickstart, and edit it to make any necessary changes. In particular, you need to point the kickstart towards a repository that contains your newly-built RPMs. By default, the kickstart points towards the stable/olpc/7 repository on xs-dev.
 Building a Branch
If you are building a Live CD which is customized for your needs, or just testing before commiting a bug fix, you will need to create your own repository for the new RPMs, and point the Live CD kickstart script at it.
Put your RPMs into a directory, and bless it using createrepo:
mkdir repo cp -p xs-config/*.rpm repo cp -p xs-pkgs/*.rpm repo createrepo repo
Then, add the following directive to the kickstart script you copy/edit for the new Live CD:
repo --name=myrepo --baseurl=file:///path/to/repo
 Main Branch
If you are developing the main branch for OLPC, please make sure to git add/commit/push your changes back into our repository. You can use the testing repository to build a test image, by placing the RPMs in the testing repository at /xsrepos/testing/olpc/7/ on xs-dev. You should also edit the kickstart script to look like:
repo --name=e7 --baseurl=http://fedora.laptop.org/xs/testing/releases/7/Everything/i386/os/ repo --name=u7 --baseurl=http://fedora.laptop.org/xs/testing/updates/7/i386/ repo --name=o7 --baseurl=http://fedora.laptop.org/xs/testing/olpc/7/i386
Don't forget to manually run
createrepo /xsrepos/testing/olpc/7/i386 repoview /xsrepos/testing/olpc/7/i386
on xs-dev when you are done, to update the repository metadata.
 Building the Live CD
The only versioning of livecd is in the naming of the kickstart file. This should also be reflected in the filesystem label (and filename) assigned to the iso image.
Finally, build the livecd (as root):
sudo livecd-creator --config=kickstart/livecd-<your_version_here>.ks \ --fslabel=OLPC_XS_<your_version_here>
This creates a live CD image in the current directory.
 Testing or Stable ?
Please note that livecd images are built using the contents of the testing repository, but once installed on a system, the default behavior will be to update from the stable repository.
Once a livecd image confirms that new installs work sufficiently well, the image is released and the stable repository is updated.
 Main Branch
If you are developing the main branch for OLPC, please make sure to git add/commit/push the kickstart file back into our repository, and place the iso image in /var/www/html/xs/ on xs-dev.