1This is the README file for version 1.07 of the Taylor UUCP package.
2
3It was written by Ian Lance Taylor. I can be reached at ian@airs.com.
4
5There is a mailing list for discussion of the package. The list is
6hosted by Eric Schnoebelen at cirr.com. To join (or get off) the
7list, send mail to taylor-uucp-request@gnu.org. Mail to this address
8is answered by the majordomo program. To join the list, send the
9message ``subscribe ADDRESS'' where ADDRESS is your e-mail address.
10To send a message to the list, send it to taylor-uucp@gnu.org. There
11is an archive of all messages sent to the mailing list at
12http://lists.cirr.com.
13
14This package is covered by the Gnu Public License. See the file
15COPYING for details. If you would like to do something with this
16package that you feel is reasonable but you feel is prohibited by the
17license, contact me to see if we can work it out.
18
19The most recent version may be obtained from any Gnu archive site.
20The canonical site is prep.ai.mit.edu. There are many mirror sites,
21including ftp.uu.net and wuarchive.wustl.edu.
22
23WHAT IT IS
24
25This is the complete source code for a Unix UUCP package. It provides
26everything you need to make a UUCP connection. It includes versions
27of uucico, uusched, uuxqt, uux, uucp, uustat, uulog, uuname, uuto,
28uupick, and cu, as well as uuchk (a program to check configuration
29files), uuconv (a program to convert from one type of configuration
30file to another) and tstuu (a test harness for the package).
31
32This is the standard UUCP package of the Free Software Foundation.
33
34The package currently supports the 'f', 'g' (in all window and packet
35sizes), 'G', 't' and 'e' protocols, as well a Zmodem protocol, the FX
36UUCICO 'y' protocol, and two new bidirectional protocols. If you have
37a Berkeley sockets library, it can make TCP connections. If you have
38TLI libraries, it can make TLI connections. It supports a new
39configuration file mechanism which I like (but other people dislike).
40
41The package has a few advantages over regular UUCP:
42
43 You get the source code.
44
45 It uses significantly less CPU time than many UUCP packages.
46
47 You can specify a chat script to run when a system calls in,
48 allowing adjustment of modem parameters on a per system basis.
49
50 You can specify failure strings for chat scripts, allowing the
51 chat script to fail immediately if the modem returns ``BUSY''.
52
53 If you are talking to another instance of the package, you can use
54 the new bidirectional protocol for rapid data transfer in both
55 directions at once. You can also restrict file transfers by size
56 based on the time of day and who placed the call.
57
58On the other hand:
59
60 It only runs on Unix. The code is carefully divided into system
61 dependent and system independent portions, so it should be
62 possible to port it to other systems. It would not be trivial.
63
64 You don't get uuclean, uusend, uuq, uusnap, uumonitor, uutry,
65 uupoll, etc. If you have current copies of these programs, you
66 may be able to use them. Shell scripts versions of uuclean and
67 uutry are provided, with most, if not all, of the functionality of
68 the usual programs. I believe the supplied uustat program allows
69 you to do everything that uuq, uusnap and uumonitor do. uupoll
70 could be written as a shell script.
71
72 The package does not read modemcap or acucap files, although you
73 can use V2 configuration files with a BNU Dialers file or a dialer
74 file written in my new configuration file format.
75
76 The package cannot use SCO dialer programs directly, although it
77 can with a simple shell script interface.
78
79If you start using this package, I suggest that you join the mailing
80list (see above) to keep up to date on patches and new versions. I am
81also open to suggestions for improvements and modifications.
82
83DOCUMENTATION
84
85The documentation is in the file uucp.texi, which is a Texinfo file.
86Texinfo is a format used by the Free Software Foundation. You can
87print the documentation using TeX in combination with the file
88texinfo.tex.
89
90See the TODO file for things which should be done. Please feel free
91to do them, although you may want to check with me first. Send me
92suggestions for new things to do.
93
94The compilation instructions are in uucp.texi. Here is a summary.
95
96 Type ``sh configure''. You can pass a number of arguments in the
97 environment (using bash or sh, enter something like ``CC=gcc
98 configure''; using csh, enter something like ``setenv CC gcc; sh
99 configure''):
100 CC: C compiler to use; default is gcc if it exists, else cc
101 CFLAGS: Flags to pass to $CC when compiling; default -g
102 LDFLAGS: Flags to pass to $CC when only linking; default none
103 LIBS: Library arguments to pass to $CC; default none
104 INSTALL: Install program; default install -c or cp
105 The configure script will compile a number of test programs to see
106 what is available on your system, so if your system is at all
107 unusual you will need to pass in $CC and $LIBS correctly. You can
108 also pass other arguments on the command line. Use configure
109 --help for a complete list. Of particular interest:
110 --prefix=DIRNAME
111 The directory under which all files are installed.
112 Default /usr/local.
113 --with-newconfigdir=DIRNAME
114 The directory in which to find new style configuration
115 files. Default PREFIX/conf/uucp.
116 --with-oldconfigdir=DIRNAME
117 The directory in which to find old style configuration
118 files. Default /usr/lib/uucp
119
120 The configure script will create config.h from config.h.in and
121 Makefile from Makefile.in. It will also create config.status,
122 which is a shell script which actually creates the files. Please
123 report any configuration problems, so that they can be fixed in
124 later versions.
125
126 Igor V. Semenyuk provided this (lightly edited) note about ISC
127 Unix 3.0. The configure script will default to passing -posix to
128 gcc. However, using -posix changes the environment to POSIX, and
129 on ISC 3.0, at least, the default for POSIX_NO_TRUNC is 1. This
130 means nothing for uucp, but can lead to a problem when uuxqt
131 executes rmail. IDA sendmail has dbm configuration files named
132 mailertable.{dir,pag}. Notice these names are 15 characters long.
133 When uuxqt compiled with -posix executes rmail, which in turn
134 executes sendmail, the later is run under POSIX environment too!
135 This leads to sendmail bombing out with 'error opening 'M'
136 database: name too long' (mailertable.dir). It's rather obscure
137 behaviour, and it took me a day to find out the cause. I don't
138 use -posix, instead I run gcc with -D_POSIX_SOURCE, and add
139 -lcposix to LIBS.
140
141 On some versions of BSDI there is a bug in the shell which causes
142 the default value for CFLAGS to be set incorrectly. If ``echo
143 ${CFLAGS--g}'' echoes ``g'' rather than ``-g'', then you must set
144 CFLAGS in the environment before running configure. There is a
145 patch available from BSDI for this bug. (Reported by David
146 Vrona).
147
148 On AIX 3.2.5, and possibly other versions, cc -E does not work,
149 reporting ``Option NOROCONST is not valid.'' Test this before
150 running configure by doing something like
151 touch /tmp/foo.c
152 cc -E /tmp/foo.c
153 This may give a warning about the file being empty, but it should
154 not give the ``Option NOROCONST'' warning. The workaround is to
155 remove the ",noroconst" entry from the "options" clause in the
156 "cc" stanza in /etc/xlc.cfg. (Reported by Chris Lewis).
157
158 Examine config.h and Makefile to make sure they're right.
159
160 Edit policy.h for your local system.
161
162 Type ``make''.
163
164 Use ``uuchk'' to check configuration files. You can use
165 ``uuconv'' to convert between configuration file formats.
166
167 Type ``make install'' to install. Note that by default the
168 programs are compiled with debugging information, and they are not
169 stripped when they are installed. Read the man page for strip for
170 more information.
171
172 On older System V based systems which do not have the setreuid
173 system call, problems may arise if ordinary users can start an
174 execution of uuxqt, perhaps indirectly via uucp or uux. UUCP jobs
175 may wind up executing with a real user ID of the user who invoked
176 uuxqt, which can cause problems if the UUCP job checks the real
177 user ID for security purposes. On such systems, it is safest to
178 put ``run-uuxqt never'' in the `config' file, so that uucico never
179 starts uuxqt, and invoke uuxqt directly from cron.
180