Aegis is a transaction-based software configuration management system. It provides a framework within which a team of developers may work on many changes to a program independently, and Aegis coordinates integrating these changes back into the master source of the program, with as little disruption as possible. Aegis supports geographically distributed development.
Cook is a tool for constructing files. It is given a set of files to create, and recipes of how to create them. In any non-trivial program there will be prerequisites to performing the actions necessary to creating any file, such as include files. Cook provides a mechanism to define these. When a program is being developed or maintained, the programmer will typically change one file of several which comprise the program. Cook examines the last-modified times of the files to see when the prerequisites of a file have changed, implying that the file needs to be recreated as it is logically out of date.
The fstrcmp library provides an fstrcmp function that returns a number between 0.0 (nothing alike) and 1.0 (identical); this can be used to suggest likely alternatives in error messages. Fuzzy comparisons for byte arrays, wide character strings, and multi-byte character strings are also available. In addition, there are integer alternatives for systems with slow floating point emulation.
The libexplain project provides a library that may be used to explain Unix and Linux system call errors. This will make your application's error messages much more informative to your users. The library is not quite a drop-in replacement for strerror, but it comes close: each system call has a dedicated libexplain function.
SRecord is a collection of powerful tools for manipulating EPROM load files. It understands a number of file formats including Motorola S-Record, Intel hex, Tektronix hex and binary, for both input and output. SRecord filters include cropping, filling, splitting, joining, and more. All filters may be applied to all file formats.
A Perl base class that allows you attach event callbacks to an object.