These commands are not intended to be run directly by a user. They may appear in any mail whose subject
is set to Command. Such a mail will be processed by the mailagent(1), which will extract all lines
beginning with @SH, followed by one of the above commands. The mailagent first sets environment variables
that will be used by every commands.
Maildist is used to mail a whole distribution to the given address. The version number may be omitted if
the system has no version specified !! Maildist looks for the Spool/distribs file to find where the
distribution is located. If it has been archived, the file name extension is used to guess how the
archive will be restored:
.cpio archive is a cpio archive
.tar archive is in tar format
.cpio.Z compressed cpio archive
.tar.Z compressed tar archive
Note that on file systems with short file names, the final .Z extension could be dropped. Therefore,
compressed archives must be explicitly stated in the Spool/distribs file.
Once the directory is found (or extracted), maildist looks for a .package file. If one is found, then it
is assumed this distribution is under control of the dist 3.0 package, and the makedist command is called
to actually mirror the source tree (makedist being part of dist 3.0).
Otherwise, it looks for a MANIFEST file. If it finds one, only the files listed therein will be sent.
Otherwise, all the files will be sent, excepted the binary executables and object files, the RCS sub-
directories or RCS files, the private U subdirectory and the .package file, any core file or files in a
bugs subdirectory.
Then, the following algorithm is used: if no RCS file is found, the file is sent as-is. Otherwise, we
look for a defined 'lastpat' symbol. If it is found, the corresponding revision is checked-out and sent.
Otherwise, the last-revision on the default branch is exctracted, provided that the corresponding working
file is not found.
The maildist command will not work if the system is tagged as an old one (with an o in the patches column
of the distribs file). A message will be sent back to the user, explaining that only patches are
available.
Mailhelp sends help to the address (if omitted, the return path of the mail is used). The help text is
found in Spool/agenthelp. It should have been correctly set in the installation procedure, as explained
in the mailagent(1) manual page.
Maillist sends the list of available distributions, with current patchlevels if necessary. The
Spool/distribs and Spool/proglist files are both used to build the list.
Mailpatch sends one or more patches for a maintained distribution. The directory or the archive is found
by scanning Spool/distribs. The bugs sub-directory must then hold the available patches. The patches may
be stored in compressed form (with the ending .Z), as mailpatch knows about them and will uncompress the
patch before sending.
Patches for old systems are kept in a separate directory, either in normal or in compressed form. If the
version number of the old system is x.y, then the directory must be named bugs-x.y and placed in the root
directory of the system, just like bugs is.
Whenever the user asks for an old system, mailpatch inserts a little note giving the latest version
number for that system.