This is the README file for Zend version 1.0. It was written by Gerben Wierda, see any source file for details. This source is "free software" but he nonetheless would like to benefit financially from his work. So if you are inclined to reward his hours of devotion, you are advised to send him a small amount of money. This package is covered by the Gnu Public License. See the file COPYING for details. If you would like to do something with this package that you feel is reasonable but you feel is prohibited by the license, contact me to see if we can work it out. You should read the file entirely before proceeding. There is a shortcut. WHAT IT IS The good news is: Zend is a sender/receiver program that will send any file or directory from one user on one system to another user at another system, as long as they are connected by e-mail. The bad news is: it is not super-efficient. Data is encoded and sent in chunks, several mail messages are sent etc. It is slow, but reliable. Speed depends on your mail speed, normally 4 connections to your mail node are needed for every transfer. If you contact once a day, that would mean 4 days to zend a file/directory. The other good news is: it does not need any intervention from the user and if you have a mail connection, than it will work. It will also try to compress anything that is sent. HOW TO INSTALL (NeXT users, read this file ENTIRELY before proceeding) Unpack the .tar.gz file. Go into the zend-1.0 directory. 1. Read the manual, `zend.tex'. It is in LaTeX format, but you can read it anyhow. 2. Copy policy.ex to policy.h. Edit `policy.h'. There are at least three things to be looked at. 3. Edit `Makefile'. Set the directories at the top of the file and choose the compiler settings. 4. run `make'. 5. if it compiled without problems, run `make install' as superuser. (If you have a previous version of zend installed, you can revert to it by running `make uninstall'.) 6. Edit the config file /usr/spool/zend/config and put in the name of your system as known by mail. If you do not do this zend will not run. Choose other variables as you like. Removing one of the sizes will make them effectively 0. Note: this file is very sensitive to typing errors! (Alternatively the systemname and spooldirectory can be set directly from configuration parameters in the Makefile.) 7. Install the following alias in your mail system: zend: "|/usr/local/bin/zend-R" or wherever zend is installed. Make the alias work. On most systems this can be done by running newaliases. Some systems need to run make aliases in their NIS directory (Yellow Pages). Some systems may need killing and restarting sendmail. 8. Install the following lines in your crontab (or in /usr/adm/daily if you have it and you so prefer): if [ -f /usr/local/bin/zend-T ] then /usr/local/bin/zend-T fi This is to make zend check periodically for lost packets, and to eventually cleanup stale jobs. 9. Install the following line in /etc/rc (or, preferably /etc/rc.local if you have it): if [ -f /usr/local/bin/zend ] then (/usr/local/bin/zend -CLEANUP) >/dev/console 2>&1 fi This is to cleanup stale lockfiles after a system crash. 10. zend yourself a file. If it arrives and you get two mail messages telling you so, all is fine. Watch the console of your system for error messages. For instance, when first running on DEC Ultrix 4.2 it turned out that uuencode made the file have default modes 0. This would result in an empty file delivered succesfully.... Compare the zent file with the sent one. 11. Normally zend records what it is doing in /usr/spool/zend/LOGFILE. This file grows without bounds, so it should be cleaned up periodically. Alternatively you can delete it altogether, since zend only writes log records if the logfile exists. 12. If the system is not already in the makefile, send me mail how to compile and install. 13. If you want the manpage installed, run: make maninstall This will install in the MANDIR in the makefile (normally that is /usr/man, so you might want to change that to /usr/local/man. There is no manpage for the config file, but config.ex is well self-documented. 14. To make a clean system (only the .tar.gz distribution is left), edit the Makefile and remove the echo from the line: echo rm -rf $$DIRNAME/* ;\ and run make CLEAN SECURITY ISSUES: Zend is installed setuid root in order to be able to deliver files to with the right user/group ids set. Care has been taken to plug all security holes we could think of: subprograms are executed in real user mode wherever possible, and are referred to by absolute pathname otherwise (to avoid being able to execute a subversive program as root by just simply manipulating PATH). The NeXTSTEP front end, incidentally, has to be setuid root too in order to be able to interrupt the zend driver. Most of the times, though, it runs in non-privileged mode: privileged mode is enabled only to interrupt or terminate its subprocess. However there is no guarantee that we overlooked something, but you can always check the sources if you don't trust us at face value. SYSTEMS KNOWN TO WORK: SunOS 4.1.1B on a SPARCstation with either native cc or GNU cc 2.3 NeXTOS 2.1 / 3.0 / 3.1 For NeXT 3.x users there is a special treat. Zend comes with a NeXTSTEP front end. It is not perfect yet (since you cannot drop a multiple-file selection on the Zend icon yet, and you probably never will, since it runs contrary to NeXTSTEP issues) but it works. Drop a (set of) files on the window, fill in the recipient and press the deliver button. Or use services. In the source distribution it is packaged in a separate archive, NeXTapp.tar, for portability reasons. You can unpack it with "make NeXTApp"; this also removes the archive. From that moment on you can use Project Builder to manage the Zend project in NeXTapp. A second special treat is in the fact that running install in the Project Builder will auto install, zend, Zend.app and the aliases, crontab and daily entries needed to perfectly run Zend. All configuration and installation parameters can be set from Makefile.postable in the NeXTapp/Zend directory. And third treat, there is an executable-only Installer Package that you can install right away. THIS INSTALLER PACKAGE IS COMPRESSED USING GZIP!!! Ultrix 4.3 with native cc on a DECstation 5000/200 SCO Unix 3.2.2 on a 486 KNOWN PROBLEMS: SunOS 3.5 delivery does not work. It compiles ok.... Systems that use Dr. Dumas uud/uue installed as uuencode/uudecode have problems. This is because these sources probably originated on DOS systems where they don't have pipes and as a result it is unusable with software that does use pipes (like this). System V-like systems may have (sometimes a kernel configurable) limit on the size of filenames. If a file or directory is transferred with too long names it depends on the systems configuration if the process is aborted or if the too long names are cut off. SCO Unix is know to have default unfriendly behaviour. AIX is default friendly. AUTHORS: Gerben Wierda (gerben@rna.indiv.nluug.nl): R&A Goudreinetstraat 582 2564 PX Den Haag The Netherlands tel: +31 70 3233032 fax: +31 70 3230851 Tom Hageman (tom@bsail.icce.rug.nl): Soerabajastraat 44b 9715 LV Groningen The Netherlands $Id: README,v 1.3 1993/02/21 13:07:33 gerben Exp $