1This is the README file for version 1.03 of the Taylor UUCP package. 2 3It was written by Ian Lance Taylor. I can be reached at ian@airs.com, 4or, equivalently, uunet!airs!ian, or c/o Infinity Development, P.O. 5Box 520, Waltham MA, 02254. 6 7There is a mailing list for discussion of the package. To join the 8list, send a message to taylor-uucp-request@gnu.ai.mit.edu. Make sure 9you include the address at which you want to receive messages; do not 10rely on the From: header. To send a message to the list, send it to 11taylor-uucp@gnu.ai.mit.edu. 12 13This package is covered by the Gnu Public License. See the file 14COPYING for details. If you would like to do something with this 15package that you feel is reasonable but you feel is prohibited by the 16license, contact me to see if we can work it out. 17 18WHAT IT IS 19 20This is the complete source code for a Unix UUCP package. It provides 21everything you need to make a UUCP connection. It includes versions 22of uucico, uuxqt, uux, uucp, uustat, uulog and uuname, as well as 23uuchk (a program to check configuration files) and tstuu (a test 24harness for the package). 25 26The Free Software Foundation plans to make this their standard UUCP 27package. 28 29The package currently supports the 'f', 'g' (in all window and packet 30sizes), 't' and 'e' protocols. If you have a Berkeley sockets 31library, it can make TCP connections. It supports a new configuration 32file mechanism which I like (but other people dislike). 33 34The package has a few advantages over regular UUCP: 35 36 You get the source code. 37 38 It uses significantly less CPU time than most UUCP packages. 39 40 You can specify a chat script to run when a system calls in, 41 allowing adjustment of modem parameters on a per system basis. 42 43 You can specify failure strings for chat scripts, allowing the 44 chat script to fail immediately if the modem returns ``BUSY''. 45 46 If you are talking to another instance of the package, you can 47 restrict file transfers by size based on the time of day and who 48 placed the call. 49 50On the other hand: 51 52 It only runs on Unix. The code is carefully divided into system 53 dependent and system independent portions, so it should be 54 possible to port it to other systems. It would not be trivial. 55 56 You don't get uusched, uuclean, uusend, uuq, uusnap, uumonitor, 57 uuto, uupick, uutry, uupoll, etc. If you have current copies of 58 these programs, you may be able to use them. I expect to 59 eventually write some form of uusched and uuclean, though uuclean 60 especially may not resemble the usual version. I believe the 61 supplied uustat program allows you to do everything that uuq, 62 uusnap and uumonitor do. uuto, uupick, uutry and uupoll can be 63 done as shell scripts. 64 65 The package does not read modemcap or acucap files, although you 66 can use V2 configuration files with a BNU Dialers file or a dialer 67 file written in my new configuration file format. 68 69 The package cannot use BNU dialer programs directly, although it 70 can with a simple shell script interface. 71 72 There is no TLI support. Hopefully by the next version. 73 74If you start using this package, I suggest that you join the mailing 75list (see above) to keep up to date on patches and new versions. I am 76also open to suggestions for improvements and modifications. 77 78CHANGES SINCE 1.02 79 80For a complete list, see ChangeLog. The man pages are only partially 81updated for the beta release of 1.03. There is currently no man page 82for uustat, uuname or uulog. 83 84 As usual, many bugs were fixed. 85 86 Several useful and interesting programs and scripts are provided 87 in the contrib directory. See contrib/README for details. 88 89 The programs uustat, uulog and uuname were added. uucp and uux 90 support a -j switch to provide a jobid which uustat can use to 91 remove the job. 92 93 Configuration can now mostly be done automatically by a shell 94 script. Adminstrative choices, as well as a few system parameters 95 the shell script cannot figure out, are made by editing a new 96 header file. 97 98 The code was successfully tested on a System III machine with a 16 99 bit processor (with segments; it would take work to pare the 100 executable size down to 64K). 101 102 Security was enhanced significantly. It should no longer be 103 possible to uucp a file to which the user does not have read 104 access. When accepting a uucp from a remote system, the 105 destination directory must be world writeable. 106 107 If a file cannot be sent to a remote system for some reason, it is 108 saved in a directory (typically /usr/spool/uucp/.Preserve) so the 109 UUCP administrator can do something with it. 110 111 Signal handling was improved and made much more reliable. uucico 112 will now handle a SIGHUP signal by terminating the current 113 session; if appropriate, it will go on to call another system. 114 uucico will attempt to acquire the communication port as a 115 controlling terminal in order to receive the SIGHUP. If uucico 116 receives a SIGINT signal, it will let the current session finish 117 but not start any new ones. If uuxqt receives a signal, it will 118 let the current job finish but not start any new ones. If uucp or 119 uux receive a signal, they will clean up any files they may have 120 created. 121 122 Debugging was improved, and individual types of debugging can now 123 be selected by name. The following types are known: chat, 124 handshake, protocol, port, config, spooldir, execute, incoming, 125 outgoing. 126 127 uucico and uuxqt may now be replaced by shell scripts even on 128 systems which can not exec shell scripts; the shell will be 129 invoked if necessary. 130 131 A new status type, ``wrong time to call'' is now be written to the 132 system status file. 133 134 The configuration files may now continue lines by using a 135 backslash as the last character of the line. 136 137 A new ``max-uuxqts'' command was added to the configuration file 138 to control that maximum number of uuxqt processes which may 139 execute simultaneously. If the code is compiled to support only 140 BNU configuration files, it will read the Maxuuxqts file to get 141 this value. 142 143 A new ``lockname'' command was added to the port file to allow 144 control over the lock file name used for that port. 145 146 A new ``protocol'' command was added to the port file to allow a 147 port to specify which protocols which should be used over it. 148 This allows support of the similar feature in the BNU Devices 149 file. 150 151 A retry time can now be specified with the ``time'' or 152 ``timegrade'' commands. 153 154 A name may now be given to an alternate; this name will appears in 155 the log file when the alternate is used. 156 157 The TCP server code is somewhat more robust, but still has no way 158 to bind a reserved port. 159 160 The -U flag (maximum file size) produced by SVR4 UUCP is now 161 recognized and supported; Taylor UUCP will not produce it, as it 162 uses other mechanisms. File restart is not supported yet. 163 164 The default 'g' protocol window size was changed to 7. 165 166 The log file now records the port used on outgoing calls and the 167 login name and port used on incoming calls. 168 169DOCUMENTATION 170 171The documentation is in the file uucp.texi, which is a Texinfo file. 172Texinfo is a format used by the Free Software Foundation. You can 173print the documentation using TeX in combination with the file 174texinfo.tex; neither are provided, but both are fairly readily 175available. You can also read it as an Info file with GNU Emacs. If 176these programs are not available, don't despair; the files 177uucp.info-*, which were generated from uucp.texi by the GNU makeinfo 178program, are easily readable by humans. 179 180See the TODO file for things which should be done. Please feel free 181to do them, although you may want to check with me first. Send me 182suggestions for new things to do. 183 184The compilation instructions are in uucp.texi. Here is a summary. 185 186 Edit Makefile.in to set installation directories. 187 188 Type ``sh configure''. You can pass a number of arguments in the 189 environment (using bash or sh, enter something like ``CC=gcc 190 configure''; using csh, enter something like ``setenv CC gcc; sh 191 configure''): 192 CC: C compiler to use; default is gcc -O if it exists, else cc 193 DEFS: Flags to pass to $CC for configure testing only; default none 194 CFLAGS: Flags to pass to $CC when compiling; default -g 195 LDFLAGS: Flags to pass to $CC when only linking; default none 196 LIBS: Library arguments to pass to $CC; default none 197 INSTALL: Install program; default install -c or cp 198 INSTALLDATA: Install data; default install -c -m 0644 or cp 199 The configure script will compile a number of test programs to see 200 what is available on your system, so if your system is at all 201 unusual you will need to pass in $CC and $LIBS correctly. 202 203 The configure script will create conf.h, and copy Makefile.in to 204 Makefile with substitutions. It will also create config.status, 205 which may be ignored. 206 207 Examine conf.h and Makefile to make sure they're right. 208 209 Edit policy.h for your local system. 210 211 Type ``make''. 212 213 Use ``uuchk'' to check configuration files. 214 215 Type ``make install'' to install. 216