You are looking at historical revision 38037 of this page. It may differ significantly from its current revision.

How to obtain the source code of eggs

There are multiple ways to obtain the source of eggs. This document shows the most common possibilities.

Individual eggs

Using chicken-install

chicken-install provides the -retrieve (short: -r) option to retrieve the source code of eggs given as argument. Use the -test option to obtain the source code of the test suite of eggs too, if available.

Example:

 $ chicken-install -r -test spiffy

The same invocation works for chicken-install from both CHICKEN 4 and CHICKEN 5.

Using any HTTP client

Eggs are also available as tarballs that can be downloaded with any HTTP[S] client from code.call-cc.org/egg-tarballs/.

Egg tarballs are generated by egg-tarballs.

Fetching the original egg source

If you want to get the source code of an egg from its original source repository, you can find most of them here:

All eggs

Using git

The source code of all available eggs is available via git. At the moment we provide four git repositories which contain source code of eggs:

eggs-5-latest
only the latest version of all eggs for CHICKEN 5
eggs-5-all
all versions of all eggs for CHICKEN 5
eggs-4-latest
only the latest version of all eggs for CHICKEN 4
eggs-4-all
all versions of all eggs for CHICKEN 4

To clone these repositories, use your favorite git client and git://code.call-cc.org/<repo> as URL. <repo> is one of the repositories listed above. Example:

 $ git clone git://code.call-cc.org/eggs-5-latest

Note that the history of those git repositories does not reflect the development history of eggs. They are just a representation of the cache of the egg servers as git repositories. You can see the history of releases, but not the history of development.

Using henrietta-cache

henrietta-cache is the software used to build up egg caches in the egg servers. henrietta-cache periodically scans the source repositories of all eggs and incrementally updates the caches in egg servers. It uses as input the index of eggs for a given CHICKEN major version. The egg indexes, called egg-locations files, are available in the CHICKEN central Subversion server.

You can otain a copy of the egg-location files here:

To use henrietta-cache to fetch eggs you can run it like:

 $ henrietta-cache -r 5 -c chicken-5-eggs -e egg-locations

Where 5 is the CHICKEN major release, chicken-5-eggs is the directory where the source code of eggs is going to be downloaded to and egg-locations is the egg-locations file.

Note that for some eggs, those available via HTTPS, you might need to install the openssl egg additionally to henrieta-cache, as it is an optional dependency.

You also need some external programs to extract the archives obtained by henrietta-cache. See its documentation for more information.