syd@DSI.COM (Syd Weinstein) (10/10/89)
This is the monthly Elm Posting from the Elm Development Group and
your Elm Coordinator. This posting generated:
Mon Oct 9 14:09:05 EDT 1989
Current release version: Elm 2.2 PL11
This version was released at patch level 0.
comp.sources.unix Posting-number: Volume 18, Issue 80
Archive-name: elm2.2/part01
Patches are posted to comp.sources.bugs and comp.mail.elm
After they are stable, patches are sent to comp.sources.unix
Patches are available from the archive server at DSI.COM:
send mail to archive-server@DSI.COM
send elm index
Known bugs in Elm 2.2 PL11:
The following are from the Elm 2.3 "To.Do" list that are
considered bugs, not enhancements, that have not yet been done. Items
which are enhancements are not listed here. It is our intention to
release changes to 2.2 for some, but not necessarly all of these. Some
of these will only be fixed in 2.3. (It depends on how extensive the
change is to fix it, and what else it ties into in the 2.3 work).
Items marked fixed will be deleted from the list on the next posting.
Known bugs in ELM 2.2
1. General bugs and configuration bugs
GB01 The ordering of some sets of configuration questions could
be improved. In some cases, the answer to a later question
renders an earlier question moot. In such cases, the latter
should proceed the former so that the former would only be
asked if need be. This occurs with many of the configura-
tion questions that deal with the domain routing and
pathalias databases, appending the hostname and internet ad-
dress style, etc.
GB02 All programs need to use the same algorithm elm(1) and
frm(1) use in establishing the user's id and the user's in-
coming mailbox.
GB03 RFC822 should be obeyed with regards to the recommended (but
not obligatory) order of message header lines. Currently
filter(1) and elm(1) put Subject: first because of a problem
with some USG versions of rmail(1). Some USG versions of
rmail(1) will put a null line before the header lines,
thereby making them text body instead of header, if either
the Subject: header line is not first or rmail(1) isn't
called with a -s flag. The set of rmail(1)'s that tolerate
the -s flag is a superset of the rmail(1)'s with this ``Sub-
ject: first'' requirement, but not all rmail(1)'s tolerate
-s. Therefore we need to find a way that Configure can
determine if the rmail(1) on the system will tolerate the -s
flag.
GB04 The preprocessor testing in Configure does not work with gcc
as the compiler.
GB05 Configure makes some wrong assumptions for ULTRIX 2.?, name-
ly that termio is "#define"'d and it uses termlib instead of
termcap.
GB06 Configure misassumes that timezone vs tzname is dependent on
BSD as some BSD systems might have acquired the public
domain zoneinfo stuff including tzname and no longer have
timezone. It needs it's own test in Configure.
GB07 Configure wrongly thinks utimbuf exists on 3B1's (running
3.51a), causing a failure to compile src/leavembox.c.
GB09 [next item goes here]
2. Elm(1) bugs
EB01 When elm(1) sorts messages by date sent, timezones are not
taken into account, only date and time, leading to inaccu-
rate sorting. [Fixed in 2.3]
EB02 Encryption is not fully implemented in ELM. In elm(1) we
have the following problems:
When `b' (bouncing) a message or `f' (forwarding) a message
without editing, an encrypted section of text in the origi-
nal message wrongly gets encrypted a second time. The func-
tion that looks for encryption delimiters needs to know to
ignore them in these situations.
When `p' (printing) or `|' (piping) a message, an encrypted
message does not get decrypted. This is because elm(1) in-
vokes readmsg(1) to pull the message out of the folder and
readmsg(1) does not deal with encryption at all. Even if we
gave readmsg(1) the ability to decrypt messages, we'd still
have problems because readmsg itself would have to prompt
for the decryption key. Now if we were printing or piping a
set of tagged messages, readmsg(1) would have to prompt for
decryption keys for each message individually. In doing
that readmsg(1) would have to indicate which message of the
set it was working on. This would be difficult since
readmsg(1) uses actual ordinal message position in the fold-
er, and that would be confusing if the user has folders
sorted in other than mailbox order: the message numbers
wouldn't match up. The solution therefore involves replac-
ing readmsg(1) with a new function in elm(1) to handle the
`p' or `|' commands, and this function would need to detect
the encryption delimiters and prompt for the decryption key.
Furthermore, readmsg(1) should get enhanced to deal with en-
crypted text, or else carry a disclaimer that it doesn't
work on encrypted text.
When including the text of an original message for a `r'
(reply) or `f' (forward), encrypted sections do not get de-
crypted first, resulting in decrypted text inside the in-
clude text. This means that the elm(1) function that in-
cludes text of an original message must detect encryption
delimiters and decrypt encrypted text before including it in
a reply or forwarded message.
EB03 When `f' (forwarding) a message, if the user doesn't elect
to edit the forwarded message at first but later does so on
the ``send menu'', the text of the message is not quoted
with the prefix string. [needs to be documented as a
feature, not a bug, due to user community demand]
EB06 RFC822 standard format for expiration dates is not honored
by elm(1) when parsing Expires: headers.
EB07 Elm(1) does not correctly reply to some legal RFC822 ad-
dresses, such as "@gozzy.com:zeef@b-tech.ann-arbor.mi.us" or
"Jon Zeeff <jon @ b-tech.ann-arbor.mi.us".
EB08 Long address lists wrap in ugly fashion on the headers edit-
ing screen.
EB09 Elm(1) does not check for failed writes and closes of files.
This can have a disastrous affect if /tmp runs out of space.
In this case, elm(1) might copy a mailbox to a /tmp file and
then back. Since elm(1) wouldn't detect that the copy to
the temp file failed, the temp file would wind up empty,
thereby causing the copy back to the mailbox to lose all
messages.
EB10 There is an inconsistency in the format of the domain rout-
ing database as presented by the documentation and the
elm(1) code. Whichever is wrong needs to be corrected.
EB11 Some terminals with multipage memory do not scroll correct-
ly. It was recommended that elm(1) use termcap ti and te
values, but this bug may need to wait until we convert
elm(1) to use standard curses.
EB12 On vt100 terminals on ULTRIX, the reverse video bar has a
leading and trailing ``2''. It was recommended that elm(1)
pay attend to delay numbers in termcap values, but this bug
may need to wait until we convert elm(1) to use standard
curses.
EB14 On the header editing screen, error messages that appear as
a result of user input should linger on the screen until the
user enters the next command, as happens on the index
screen. Currently they disappear too quickly to be read.
EB15 On the mini menu, ``q)uit'' is out of alphabetical order.
[fixed in 2.3]
EB16 Elm(1) uses sendmail(1) as the MTA just because Configure
found it, even if another MTA was specified during confi-
guration.
EB17 A comma in the username/groupname field of an alias causes
elm(1) to only take the username/groupname up to the comma
and the rest of the field is ignored.
EB20 Apollo SR9.7 nodes get _IOEOF and _IOERR undefined when com-
piled hdrconfig.c. This is an Apollo porting bug, and so
should be documented in the installation instructions.
EB21 System_call() in src/syscall.c presumes that a system has
SIG_CONT because SIGTSTP is defined. On CCI systems this
may be wrong and a better check is the existence of the file
/usr/lib/libjobs.a.
EB23 Complaint (probably occurs under certain configurations
only) that address optimization occurs regardless of whether
its configured.
EB24 Complaint (probably occurs under certain configurations
only) that address optimization "over optimizes" - the last
node in the address is claimed to be known when it isn't.
EB25 If elm is replying to a message and considers From: lines
valid and resolves pathaliases, if the reply path from the
From: line could not be resolved, elm should report the er-
ror and ask the user if the "From " lines should be used in-
stead.
EB26 When using an address of the form "node!user@domain", the !
has higher precedence than the @ when elm resolves the ad-
dress. The @ should have higher precedence.
EB28 Shell-special characters in addresses (e.g. '&') can foul up
the shell command by which elm(1) executes the MTA. A solu-
tion may be to single quote each address in the command.
EB29 Mailbox editing always uses the alternative_editor. It
should use the regular editor and only the
alternative_editor if the regular editor is "none" or "buil-
tin".
EB30 Deletion of an alias with multiple alias names does not
work. The alias is not deleted.
EB31 Return addresses are not checked in the same way that manu-
ally entered addresses are checked against the pathalias da-
tabase, and this sometimes allows a bad address to be used.
EB32 Printing or piping with too many messages tagged causes a
segmentation violation. [fixed in 2.3]
EB33 Elm in saving a mail folder after it being the current mail
folder uses a copy to temp and then remove and recreate the
folder method. This breaks any links the old folder had.
Instead it should use copy to temp, truncate and then copy
back keeping the links intact.
EB34 When expanding an Elm system alias, Elm will use a user
alias within that expansion. When expanding system aliases,
only other system aliases should be used. [fixed in 2.3]
EB35 Configure does not recognize the mail group if the mail
spool directory is a symbolic link. [fixed in 2.3]
EB36 [next item goes here]
3. Utilities bugs
UB01 Arepdaem.c repeatedly opens the autoreply file but doesn't
close it after each open. This could result in failure once
it has exceeded the maximum allowed number of open files.
[fixed in patch 11]
UB02 Newmail(1) displays a null "From" when a message does not
contain a From: header line. It needs to be able to parse
the return path and display the "last two words" of it, just
like elm(1) does when it encounters a message without a
From:
UB03 Sometimes newmail(1) gets in a state when it outputs a blank
line instead of the From and Subject whenever new messages
are received. This appears to happen after the user removes
messages from the mailbox. This may not be fixable since it
may be due to newmail(1)'s simple-minded way of deciding
when a message has been added to the mailbox. I.e. this may
require newmail(1) having a more sophisticated way of iden-
tifying each message in a mailbox. [partial fix in 2.3]
UB04 Filter(1) locks incoming mailboxes only with lock files.
Filter(1) needs to use flock(2) on mailboxes on the ap-
propriate systems, just like elm(1) does.
UB05 Newmail(1) does not shut down on certain systems that do not
send SIGHUP to background processes when the user logs off.
One solution is for newmail(1) to do a getppid(2) before it
forks the background process and to terminate when the pro-
cess id returned by that getppid(2) (the user's login shell)
no longer exists.
UB06 Filter(1) always uses sendmail(1) as the mail transport
agent. The MTA should be configurable.
UB07 Arepdaemon has a bad security hole because it does not check
to see if the user can read the file used for reply.
UB08 The move_left function in arepdaemon.c does not work for a
move of 1 byte.
UB09 Autoreply.c tries to unlink the file "/etc/autoreply.data"
when there is only one entry in it and does not check the
return value of unlink. This can have bad repercussions if
the unlink fails because the program nevertheless reports
success.
UB10 Readmsg doesn't understand continued header lines and there-
fore doesn't list all the "To" header, for example, if
presented on more than one line.
UB11 Newalias wrongly treats a comma in the comment field as the
end of the field.
UB12 [next item goes here]
Current development version: Elm 2.3d
Freeze for testing: 11/1/89
Anticipated release: 1/1/90
both dates subject to change without notice.
New Features/Changes in 2.3:
This section will list some of the new features, or changes to the
appearence or functioning of Elm in the next version to reduce the
surprise element. This list is not designed to be a complete list
of the changes in the next version.
1. Aliases will now be case insensitive. This as per the survey
results of Elm users.
2. Elm will no longer be able to access the L.sys/Systems file
itself. It will only use the output of uuname for security reasons.
As of release 2.1, Elm is now being developed by a cooperative venture
of volunteers loosely being called the Elm Development Group. There are
approximately 26 developers and an additional 16 testers, participating
at various levels of activity.
Comments, bug reports, feature requests, etc. should be sent to
elm@DSI.COM. I try to ack most reports, but over 60% fail due to
invalid addresses. Note, I strip your address to name@site before
replying.
New releases will be posted to comp.sources.unix, patches will be posted
to comp.sources.bugs. After patches have been proven and out for a
while, they will be posted to comp.sources.unix. Patches are available
from the archive server at DSI.COM. The complete release as of the
current patch level is available via anonymous uucp from dsinc. Also
available via anonymous uucp are postscript output files of the current
documentation. This service is provided for those sites that have
postscript but do not have di-troff. Instructions for obtaining files
via anonymous uucp from dsinc are also available from the archive
server. Elm is too large to mail, don't bother asking. Also don't
mail me asking for me to send you patches, I won't. Use the archive
server.
The following sites have agreed to make Elm available via anonymous ftp.
Site Contact
mthvax.cs.miami.edu a.e.mossberg, aem@mthvax.cs.miami.edu
(129.171.32.5)
wuarchive.wustl.edu David J. Camp, david@wubios.WUstl.EDU
(128.252.135.4)
Starting with release 2.2, the Elm Development group will attempt to
provide official patches to the release version to fix problems reported
at the same time we are working on the 2.3 release. Also starting with
release 2.2 a list of known problems will be published in this posting.
The Elm(tm) Mail System
(C) Copyright 1986, 1987, by Dave Taylor
(C) Copyright 1988, 1989, USENET Community Trust
An Overview of the Elm Mail System
----------------------------------
1. What is Elm?
In the lingo of the mail guru, Elm is a "User Agent" system, it's
designed to run with "sendmail" or "/bin/rmail" (according to what's on
your system) and is a full replacement of programs like "/bin/mail" and
"mailx". The system is more than just a single program, however, and
includes programs like "frm" to list a 'table of contents' of your
mail, "printmail" to quickly paginate mail files (to allow 'clean'
printouts), and "autoreply", a systemwide daemon that can autoanswer
mail for people while they're on vacation without having multiple
copies spawned on the system.
2. What's New about Elm?
The most significant difference between Elm and earlier mail
systems is that Elm is screen-oriented. Upon further use, however,
users will find that Elm is also quite a bit easier to use, and quite
a bit more "intelligent" about sending mail and so on.
3. What systems does it work on?
Elm was originally written on HP-UX, HP's proprietary version
of AT&T System V, with a little BSD thrown in. Since then, it has been
ported to AT&T, Berkeley, Sun, UTS, Pyramid and Xenix and should run on
all these systems without any modifications.
4. Does it obey existing mail standards?
Yes! That's another of the basic reasons the program was
originally written! To ensure that the date field, the "From:" line
and so on were all added in the correct format. The program is 100%
correct according to the RFC-822 electronic mail header protocol
guide.
--
=====================================================================
Sydney S. Weinstein, CDP, CCP Elm Coordinator
Datacomp Systems, Inc. Voice: (215) 947-9900
syd@DSI.COM or {bpa,vu-vlsi}!dsinc!syd FAX: (215) 938-0235