xref: /386bsd/usr/src/libexec/uucp/README (revision a2142627)
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