Etoys RPM and XO bundle

From OLPC
Revision as of 22:14, 26 September 2007 by RafaelOrtiz (talk | contribs) (Reverted edits by 209.99.227.70 (Talk); changed back to last version by Propella)
Jump to navigation Jump to search

The Etoys activity comes as an Etoys XO bundle containing the Sugar glue code, an Etoys RPM containing the image and essential projects, and the Squeak RPM containing the Squeak virtual machine. The "image" contains the basic Squeak libraries plus the actual Etoys layer. The VM and image are separated out as RPMs so that multiple Squeak-based activities can share these, rather than including their own copy.

Prerequisites

For building RPMs you will need need to use sugar-jhbuild on Fedora 7.

Squeak VM

In sugar-jhbuild:

./sugar-jhbuild buildone squeak

This will checkout the squeak VM sources from SVN to sugar-jhbuild/source/squeak, then configure and build. Afterwards you can also simply do it by hand:

cd sugar-jhbuild/source/squeak
make install

which installs into the sugar-jhbuild/build directory (was given as --prefix to autogen.sh which passed it to configure).

Squeak RPM

You will first need to edit the "squeak-vm.spec" RPM spec file. At least update the release number and add a changelog entry. Then to build the rpm do this:

cd sugar-jhbuild/source/squeak
./makerpm

Building RPMs requires sudo, it will aks for your user password. When asked to commit to svn press Ctrl-C to abort, this wants to upload built rpms to tinlizzie.

The RPM will be in /usr/src/redhat/rpms/i386

Etoys

In sugar-jhbuild:

./sugar-jhbuild buildone etoys

This will checkout the etoys activity sources from GIT to sugar-jhbuild/source/etoys, then configure and build. The make step will checkout the Content directory as given in the Content.revision text file. Afterwards you can also simply do it by hand:

cd sugar-jhbuild/source/squeak
make install

which installs into the sugar-jhbuild/build directory (was given as --prefix to autogen.sh which passed it to configure).

Preparing a release

  • Check the new image and projects into SVN.
  • "svn update" in the Content folder. "svn info" to note the SVN version
  • edit "Content.revision" to reflect the new SVN version
  • do "make ChangeLog" to update the change log, this will download all the latest changesets and extract the preambles.
  • verify the top ChangeLog entry matches the latest update in the image.
  • edit "etoys.spec": change the version number at top to reflect the latest update number, add a new entry to the changelog section (this is essential, XO bundles are numbered by the count of changelog section in the spec). Use the formatting as the other entries, add a line for each new changeset.
  • do "make NEWS" which extracts the changelog entries from etoys.spec and puts it into the NEWS file to be included in XO bundle

Now everything should be in place. Use "git diff" to verify all the changes are sensible. To make the new version available to other jhbuild users, do "git commit -a", put in a nice changelog entry (I copyedit the one from etoys.spec), and then "git push" to upload.

For pushing you will have to edit .git/config, the remote must be git+ssh://dev.laptop.org/git/projects/etoys

Etoys RPM

make etoys-src
../../sugar-jhbuild shell
sudo make etoys-rpm

to create the source tarball, to setup environment variables and create the etoys rpm.

I then do "make etoys-release" which does nothing more than copy the rpm to svn at tinlizzie. You will have to setup those svn repositories before, or just upload manually, somewhere.

To setup svn repositories.

svn co http://tinlizzie.org/olpc/sugar/rpm/
svn co http://tinlizzie.org/olpc/sugar/yum/

Etoys XO bundle

../../sugar-jhbuild shell
make xo

to setup environment variables and make the xo bundle.

I then do "make xo-release" which does nothing more than copy the xo bundle to svn at tinlizzie. You will have to setup those svn repositories before, or just upload manually, somewhere.

To setup svn repositories.

svn co http://tinlizzie.org/olpc/sugar/xo/

Getting the release into the build

Once everything has been uploaded to tinlizzie, I login to dev.laptop.org and copy the rpms and xo file over:

ssh dev.laptop.org
cd /var/www/etoys
./mirror

Then open a new ticket assigned to J5 requesting the XO and RPM to be included in the build. Add the URLs and copy the changelog entry to the ticket, too. Example: #2482