XML Catalog Manager (xmlcatmgr in its short form) is a small utility used to manipulate SGML and XML catalogs. It is extremely small and lightweight, specially designed to be run from packaging systems. Basically, it allows adding and removing entries from catalogs in a completely automated way.

A catalog is a lookup mechanism used to translate entities into other different entities. They can, for example, map public identifiers to local files or URIs. This allows the system to tell the parser where to look for entities without having to modify the original document source.

This program was initially created to manage catalog files within pkgsrc, the NetBSD package system. As such a program is required by very simple packages (DTD’s, for example), we needed an utility that did not rely on big libraries nor programs to keep a small dependancy tree. xmlcatmgr is now completely integrated with many pkgsrc packages and is doing a good job.

As xmlcatmgr is not a NetBSD specific utility, this project was born to make it available to everybody. As a result, the FreeBSD project adopted it for its own ports system.

If we go by number of installations, this might be my most successful utility ever: it is still used by the pkgsrc and ports system, and it hasn’t required of any fixes since 2004. (But it’d need them; I tried to do some fuzz-testing not too long ago and found plenty of bugs in the parser.)