cclan

The Comprehensive Common Lisp Archive Network.

The cCLan project started out intending to build a comprehensive archive of CL code, in much the same way as CPAN and CTAN have for Perl and TeX. In this aim it's been largely overtaken by asdf-install and the "distributed network" here on CLiki.

The cCLan network is still running and will continue to run for the foreseeable future. Authors of asdf-install-compatible packages are welcome to use it for distributing their packages if they have no suitable hosting of their own, or would like the redundancy.

(Also check out common-lisp.net which provides FTP, cvs, mailing lists and other services to Lisp projects)

cCLan sites

You can see the current cCLan sites (and choose your preferred mirror) at http://ww.telent.net/cclan-choose-mirror, or proceed directly to the current mirror. (If the current mirror link takes you to a list of links, you have not yet set your cookie. Choose one of the links in the list, return to this page, and then choose the current mirror page once again. At that time you should be directed to the link you chose.)

Information for potential cclan node maintainers

The cClan network was designed with these features in mind:

  • use standard or easily-installable tools on the servers (e.g. ftp, rsync, cron jobs) with no significant admin overhead (usenet is right out)

  • no single point of failure

  • allow people to upload to the most convenient host and have packages spread from there

Basically we use rsync in both directions between mirror hosts.

For each version of each package there is a tarball, a detached PGP signature, and a "meta" file. The meta file controls which version of the package is current so that symlinks may be maintained automatically. The metafile name is created by appending ".meta" to the archive file name (death to LPNs, cough cough)

$ cat foo_2.1.3ac4.tar.gz.meta
foo.tar.gz
foo_2.1.3ac3.tar.gz
$

The first line of the meta file is used to create a symlink to the actual archive file, so that browsers can keep track of the current version. The remainder of the file is a list of previous versions of the archive which this obsoletes and may now be deleted

Archive update is based exclusively on a "pull" model, to avoid the need for authenticating to the peer. Read the shell/perl scripts to see how it works

Uploaders need to provide PGP detached signatures (foo.tar.gz.asc) so that packages can be authenticated by download utilities

  • The doc, bin, etc directories contains shell scripts and data for syncing and maintaining the files in the cClan node itself. Users of cClan packages don't need to worry about these.

  • The old directory may contain previous versions of packages. This depends on the node admin's policy

Comments/etc should go to the cclan-list mailing-list.

As well as the mirror network, this project seems to live in part on Sourceforge.