View file File name : README Content : Safecat Len Budney February 29, 2000 1. Introduction safecat is an implementation of D. J. Bernstein's maildir algorithm. It can be used to write mail messages to a qmail-style maildir, or to write data to a "spool" directory reliably. There are no lockfiles with safecat, and nothing is left to chance. If safecat returns a successful exit status, then you can be (practically) 100% sure your data is safely committed to disk. Further, if data is written to a directory using safecat (or other implementations of the maildir algorithm), then every file in that directory is guaranteed to be complete. If safecat fails to write all of the data, there will be no file at all in the destination directory. Of course, you know that such a thing cannot be: between UNIX and the different hardware options available, a 100% guarantee is not possible. However, safecat takes every precaution possible in writing your data. 2. Getting safecat The source code for safecat may be downloaded from <http://www.pobox.com/~lbudney/linux/software/safecat.html> or from sunsite or one of its mirrors. To build and install safecat, follow the instructions in the included INSTALL file. To summarize: make make setup check 3. Copying safecat is offered under the terms of the BSD License. The included file COPYING is a copy of the license. 4. Caveats On some systems, handling an email larger than 2GB may cause safecat to fail silently. This is an OS bug; the correct behavior, if large files are not supported, is to return failure upon writing past the supported file size. On those systems that support the O_LARGEFILE flag, mainly Linux, you can turn on large file support by editing conf-cc. I recommend you look into a different tool, such as rsync, for processing files larger than 2GB. 5. Credits The maildir algorithm implemented in safecat was devised by Professor D. J. Bernstein, and is implemented in his qmail mailer. Other (approximate) implementations of the algorithm exist, in procmail, mutt, and the Emacs mailreader Mew, but to my knowledge this is the only standalone implementation, and the most complete implementation outside of qmail itself.