Proposal for SapCat: Site and Platform Customization Administration Tool

Proposal for SapCat: Site and Platform Customization Administration Tool,
R. Lindsay Todd.
June 2000.
URL: http://software-carpentry.codesourcery.com/entries/second-round/config/SapCat/
Final Proposal to the Software Carpentry "SC Config" competition. See also the preliminary proposal.

We present the SapCat system, a tool to help make software portable. Programmers can parameterize their source code with macros or symbols that indicate the results of feature probes. SapCat will automatically scan the source code for occurrences of these symbols, perform operating system probes, and adapt files to make sure the correct values for these symbols are used. In some cases, SapCat can even generate "bootstrap scripts" that will perform these probes and substitutions, even on systems without SapCat or Python.

SapCat relies on a "package description database", a collection of files created by the package developer. This database indicates dependencies between objects and their immediate sources, optional features of the package, and information regarding how to contact the maintainer. From the dependency information, SapCat is able to both determine source files to be scanned and interact with the build system.

While easy for programmers, we take care not neglect the final end users, those who will be using SapCat to tailor their software. We provide "casual installers" with an installation wizard, and a command line interface for "professional systems administrators" who need to script their operations. We even consider "systems integrators" who wish to create binary distributions of packages.

Available as: HTML


R. Lindsay Todd
l.todd@acm.org