Installing Taylor UUCP


Why should I run Taylor UUCP?

If you're using UUCP on a UNIX platform, and you're not running Taylor UUCP, then you should switch. It's that simple. Why?

What do I need?

To run Taylor UUCP, you need:

FS-UUCP is a version of UUCP for DOS that will support UUCP-i in version 2.0, due to go into beta soon. If you need to run UUCP under DOS, I encourage you to check out FSUUCP, or the commercial version in preparation, UUcom. The latest version of FS-UUCP (currently v1.42 with 1.5 on the way) is available via the Fubar Systems BBS, (805)-54-FUBAR. There is also a mailing list, which you can join via mail fsuucp-request@toys.fubarsys.com.

Commands supported

The Taylor UUCP distribution includes the following commands, which by default are placed within the /usr/local/bin/ directory:

The following system daemons are also included, which by default are placed in the /usr/local/lib/uucp/ directory:

Finally there are the following miscellaneous utilities, by default placed in the /usr/local/lib/uucp directory:

Setup files

Taylor UUCP can be setup with only one setup file, sys, but I have found it easier to split up the setup into several files, including:

The call file

The call file contains the uucp host names, userIDs, and passwords of those systems you'll be dialing into. Since this file contains the crown jewels, it must be set so as not to be world-readable. Below is an example file for dialing in to systems punky and venus. On the punky system the UUCP login is mrgobs; on the venus system, it is mrfoo. mypassword and anotherpass are the passwords on the two systems.

/usr/local/lib/uucp/call

punky mrgobs mypassword
venus mrfoo  anotherpass

The config file

The config file contains some basic configuration parameters such as the location of the log and statistics files, and your UUCP name. So as to be compatible with utilities for V2 UUCP, I made sure that the logfile was stored as /usr/spool/uucp/LOGFILE, where it would be expected.

/usr/local/lib/uucp/config

#if I wanted to have a separate sys file for each system I could do this:
#sysfile /usr/local/lib/uucp/sys.holonet
#sysfile /usr/local/lib/uucp/sys.netcom
# 
# set the location of the log files in /usr/spool/uucp:
logfile LOGFILE
statfile STATFILE
# set my UUCP name (can be overidden for a particular host in the sys file)
uuname planet

The dial file

Dial is a file of modem dialing scripts. The purpose of this file is to get the modem to dial the UUCP host phone number. After that, scripts in the sys file take over. As a result, the only thing you need to do here is to get the modem initialized, and dialing. Taylor UUCP supports the standard expect-send-expect UUCP scripting. Special symbols include:

/usr/local/lib/uucp/dial

# This is dial
dialer telebit

#The chat script used to dial the phone
chat "" ATZ\r\d\c OK ATDT\D CONNECT
chat-fail BUSY
chat-fail NO\sCARRIER
complete \d\d+++\d\dATH\r\c
abort \d\d+++\d\dATH\r\c

The port file

Port is where you define the ports to be used. In my case, I define one port which has a Telebit modem on it. I previously had the speed set to 19200, but I had some problems with flow control.

/usr/local/lib/uucp/port

port port1
type modem
device /dev/cufa
dialer telebit
speed 9600
carrier true

The sys file

The sys file contains the configuration information for each system. The default location for the file is /usr/local/lib/uucp/sys, but you can point to other file(s) in your config file. Below find the sys file for my login to Holonet. Some notes:

/usr/local/lib/uucp/sys

#This is for holonet
system holonet

#myname is only needed if you want to use a different UUCP name with this
#particular system.
myname planet
phone 7041063
# Login name and password are put in the call file (so as to allow them to be protected)
call-login *
call-password *

#We can send anything at any time
time any

#Use TCP port first, if it doesn't work, then try port1
port type TCP
address holonet.net
chat ogin: \L word: \P

alternate

port port1
chat service: holonet\r\c ): \L word: \P none: uucp\r\c

#Increase the timeout and the number of retries
protocol-parameter g timeout 20
protocol-parameter g retries 20

Permissions

By default, Taylor UUCP installs its files into /usr/local/lib/uucp. In order for the UUCP daemon to be able to get at these files, you must make sure that the /usr/local/lib/uucp directory is reachable by uucp of the daemon group. You can do this via the following commands:

chmod +x /usr/local
chmod +x /usr/local/lib
chmod +x /usr/local/lib/uucp

You will also need to make sure that the files in the /usr/local/lib/uucp directory are owned by the uucp daemon. To do this, type the following:

cd /usr/local/lib/uucp
/etc/chown uucp.daemon *

If you setup the configuration files the way I tell you to in this article, then only the /usr/local/lib/uucp/call file will contain password information. As a result, you will need to execute the following permissions:

chmod 600 call
chmod 644 config
chmod 644 dial
chmod 644 port
chmod 644 sys

The end result of all this is that your /usr/local/lib/uucp directory should appear as follows:

internaut.com:33# ls -lg
total 3182
-rw-------  1 uucp     daemon        23 Mar 13 12:10 call
-rw----r--  1 uucp     daemon        48 Mar 13 13:30 config
-rw-r--r--  1 uucp     daemon       197 Mar 13 13:08 dial
-rw-r--r--  1 uucp     daemon        79 Mar 13 13:15 port
-rw-r--r--  1 uucp     daemon       360 Mar 13 13:29 sys
-rwx--x--x  1 uucp     daemon    461376 Mar 22  1993 uuchk*
-r-sr-xr-x  2 uucp     daemon   1392408 Mar 22  1993 uucico*
-rwx--x--x  2 uucp     daemon    564140 Mar 22  1993 uuconv*
-r-xr-xr-x  2 uucp     daemon       306 Mar 22  1993 uusched*
-r-sr-xr-x  2 uucp     daemon    791412 Mar 22  1993 uuxqt*

Sendmail configuration

To inform sendmail of the location of your newly installed Taylor uux, you will need to modify the UUCP Mailer specification in your sendmail.cf file to point to the Taylor uux. Otherwise, sendmail will continue to use your previous uux, and since the format of outgoing packets may differ between your previous UUCP and Taylor, your outgoing mail will not be sent. Below is an example specification:

Muucp,	P=/usr/local/bin/uux, F=msDFMhuU, S=13, R=23, E=\n, A=uux - -r $h!rmail ($u)

If you want the mail to go out immediately, remove the -r.

Packet format

By default, Taylor stores outgoing packets in the directory /usr/spool/uucp/system where system is the UUCP name of the remote host. Within this directory, Taylor UUCP includes these directories:

# ls -lg
total 5
drwxr-xr-x  2 uucp     daemon      2048 Mar 18 10:09 C./
drwxr-xr-x  2 uucp     daemon      2048 Mar 18 10:09 D./
-rw-r--r--  1 uucp     daemon         4 Mar 18 10:09 SEQF

Within the C. directory are the control files, which have names such as C.N0009, and look like this:

E D.0008 D.planetN0008 agent -C D.0008 0666 "" 0 rmail netcom.com!aboba

Here D.0008 is the name of the corresponding data file in the D./ directory; D.planetN0008 is the name of the file as it will be received on the remote system; agent is the userID sending the file; 0666 is the permission of the file; and rmail netcom.com!aboba is the command to be executed on the remote system.

Links to other utilities

If your version of UNIX has already had utilities and other elements built around your previous version of UUCP, then you will need to create links between from where your old utilities expect to find the UUCP daemons or commands, to where Taylor stores them. Before messing with your previous setup, I recommend that you archive your old directories so that you can restore them if needed. I also recommend that you flush out all remaining incoming and outgoing files before doing the conversion, since your new setup may not be able to process old files.
Bernard Aboba, aboba@internaut.com, last modified: 3/24/94