The following are pieces of software, ranging from small utilities to large applications which I've developed. Unless otherwise noted they have all been tested under Linux. Perl applications may also run under Windows, although they have not been tested on it.

Authentication and Authorization

A utility to add keys for principals to a Kerberos KDC and extract them to a keytab, with flags to disable this if the key already exists there.

A suite of programs to implement local authentication using passwords for principals that are already in the KDC. It works by running a program on the KDC which extracts the keys and crypts them using md5_crypt, creating a local password file. A PAM module is included which uses this file for authentication, and a client and server are provided for distributing the map from the KDC to the local machine.

Directory Services

Authen::SASL::GSSAPI and Authen::SASL::Cyrus
Perl modules to provide GSSAPI authentication for Net::LDAP's Authen::SASL module. As a by product there is a very simple perl binding for the client authentication functions of Cyrus SASL.

A perl tool, built on top of Net::LDAP which will do pull based replication of an LDAP server to a client. To do this it relies upon the modifyTimestamp operational attribute stored by the master server. Tested with OpenLDAP v2.

Tool for uploading NIS maps in predbm format to an LDAP server, and then keep the version on the server in sync with the NIS maps, without altering other stored data or attributes.


cpan2rpm converts CPAN packages into RPMs. It automates the location and fetching of the package using the CPAN module, then creates an autogenerated .spec file for the module, and builds it. It will deal with creating multiple RPMs for Bundles, but does not yet handle prerequisites.

The package contains a Makefile that will build an rpm when invoked with make rpm.
cpan2rpm version 1.0

Web applications

Harvest is a web indexing package, originally developed by the IRTF-RD. This version contains a number of further additions and bug fixes over their final release.

Harvest-NG is a set of tools for building a standards-compliant web crawler. It is implemented in Perl, taking advantage of many of the existing perl tools, and can provide a complete harvesting solution for a web site. The development of Harvest-NG was started as an attempt to preserve the strong features of the Harvest architecture, but to allow more rapid developing and prototyping from a cleaner, better structured codebase.

This perl utility analyses web server log files and generates reports about the number of accesses from web robots seen in these logs.
Botwatch details

Robots.TXT syntax checker
This web-base utility analyses robots.txt files and checks that their syntax is correct.
Robot syntax checker form

CVS web publishing
This suite of tools allows the use of CVS as a distributed web authoring system, including HTML syntax checking, accepting content from both CVS and authoring tools such as Netscape Navigator, authoring access control, and metadata management.