LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Eric Thomas <[log in to unmask]>
Mon, 25 Nov 1991 06:20:19 +0100
text/plain (920 lines)
         Description of the changes for release 1.7b of LISTSERV
         -------------------------------------------------------
                           November 25th, 1991
 
**************
* Highlights *
**************
 
Version 1.7b introduces the following major enhancements:
 
- Support for CMS release 7 in  both 370 and XA/ESA/XC modes. Support for
  CMS release 8 will be  provided shortly after its general availability.
  Due to  its generally  observed lack of  robustness and  stability, CMS
  release  6 is  still not  formally supported;  problems that  cannot be
  reproduced under CMS release 7 will not be addressed.
 
- Support for the Shared File  System, with the restrictions listed under
  the heading "Support for the CMS Shared File System".
 
- Introduction of the "PREXX library"  - a development tool allowing REXX
  functions  to  be rewritten  in  PASCAL  for better  performance,  with
  measured savings on the order of a factor of 10 to 15, depending on the
  nature of the function being rewritten.
 
- Introduction of  the 'IETFHDR'  header style to  allow BITNET  users to
  become familiar with Internet-style mailing lists conventions, on which
  the Internet version of LISTSERV will be based. Read important warnings
  and disclaimer under the heading "IETF-style mail headers".
 
****************
* Availability *
****************
 
Release 1.7 is available free of  charge to sites which qualify under one
(or more) of the categories listed below:
 
a. Members  of CREN or  one of  the CREN Cooperating  Networks, excluding
   EARN members.
 
b. EARN members from nordic countries.
 
c. EARN  members from non-EEC  countries which have formally  applied (in
   writing)  for  a  license,  and complied  with  the  appropriate  EARN
   directives.   International  organizations   are  not   considered  as
   belonging to the EEC.
 
Licenses  for release  1.6 from  non-EEC EARN  members are  automatically
carried over to release 1.7 - please do not mail a new license agreement.
Release 1.6 licenses from EEC countries remain valid for release 1.6, but
will not be carried over to release 1.7.
 
*******************************
* Supported operating systems *
*******************************
 
Release 1.7  introduces the  following changes to  the list  of supported
operating systems:
 
- (1.7a) Withdrawal of support for CMS release 3.
 
- (1.7a) Support for the CP components of VM/SP release 7 and VM/ESA.
 
- (1.7b) Support for CMS release 7 in both 370 and XA/ESA/XC modes.
 
- (1.7b)  Support for  the Shared  File System,  with a  few restrictions
  concerning the  setup of  the A  and D-disks  and the  default filepool
  setting. See the corresponding section for more information.
 
- It is expected that version 1.7b will work under CMS release 8, however
  formal support cannot  be provided at the time of  its release, as CMS8
  is not yet GA.
 
Support for other versions of CP and CMS is unchanged from 1.6e.
 
*****************
* Compatibility *
*****************
 
Release 1.7b is generally compatible with 1.7a. The most notable changes,
in terms of compatibility, are  highlighted below; note that more details
are available, when  appropriate, from the longer  descriptive section of
these release notes.
 
 1. Support for the "old" format of BITEARN NODES is no longer available,
    as  BITEARN NODES  has been  distributed  in the  "new" format  since
    VERS9109 (SEP91). Sites with a current  copy of BITEARN NODES are not
    affected; sites  with an  outdated copy must  install a  current copy
    before upgrading to release 1.7b.
 
 2. The  CARD  component no  longer  supports  CDF minidisks.  Note  that
    LISTSERV  itself  never  supported  CDF minidisks:  this  warning  is
    included for the  benefit of sites which use the  LISTSERV version of
    CARD for their users.
 
 3. IETF-style headers will  not operate properly in  a peered-list setup
    if some of the peers are running a version older than 1.7b.
 
 4. Application developers  should note the changes  in internal LISTSERV
    files described under the heading "Renamed REXX files".
 
 5. New source code and MODULE  files will now be called LSWxxxxxx rather
    than  LSVxxxxxx.  Maintenance  programs   issuing  commands  such  as
    'LISTFILE LSV* MODULE (STACK' will need to be modified accordingly.
 
Release 1.7b is  to be installed directly  on top of the  base 1.7a code,
and includes all the fixes available from LISTSERV@SEARN for release 1.7a
(ie  all  the "17Annnt  FIX"  files  from  filelist "LFIXES"),  with  the
exception of those containing replacement "recommended user exits", which
always have to be installed manually.
 
********************************
* Minor fixes and enhancements *
********************************
 
This  section contains  a brief  description of  all the  "small yet  not
unimportant worries" that have been fixed in release 1.7b, along with the
affected  releases, if  known ("All"  meaning "any  release in  which the
facility  is  available", ie  the  problem  was  present since  the  very
beginning).
 
Minor enhancements which  do not warrant a detailed  description are also
included; they  are all  located at the  bottom of the  list, and  can be
identified by the word "New" in the "Affected releases" column.
 
Finally, changes which might introduce compatibility problems are flagged
with  one asterisk  for minor  problems (change  in a  message or  in the
output of some commands originally designed for human readers rather than
programs,  but which  some people  might still  have decided  to feed  to
programs),  or two  asterisks  for  more serious  problems,  for which  a
detailed description will always be provided further on.
 
Affected
releases    Description of the bug, problem or enhancement
--------    ----------------------------------------------
  1.7a      REXX error  in LSVLTELL  during SHOW  NODE command  via mail.
            Fixed.
 
  1.7a      LISTSERV could  generate 'Date:' fields  with a time  zone of
            'TZONE'. Fixed.
 
  All       Files with a  fileid of the form 'llll  LOGaaaa' where 'llll'
            is the  name of an  existing list  and 'aaaa' is  not numeric
            could be mistaken  for archive files by  the database driver.
            The code now checks that  the four characters following 'LOG'
            are numeric but does not attempt to check that they represent
            a valid month.
 
  All       Comments at  the end  of the 'Date:'  field in  incoming mail
            could cause the date to  be flagged as invalid. Such comments
            are now accepted.
 
  All       Miscellaneous bug  fixes to  the VMS  version of  LDBASE from
            Mark  Strawcutter <MJSTRAW@IUP>  have been  incorporated. The
            main problem was that LDBASE could fail to quit properly in a
            cluster environment.
 
  All       Loop detector did not  handle improperly folded RFC822 fields
            in body of delivery error notice. Fixed.
 
  All       The MAIL file format (ie 'F=MAIL') was not supported for AFD.
            LISTSERV now properly handles  AFD subscriptions with F=MAIL;
            a  DISTRIBUTE  MAIL job  is  generated  in response  to  such
            requests.
 
  All       The REPRO  subscription option was not  handled properly when
            the subscription address  (in the LIST file)  and the sending
            address ('From:' field) were different, but equivalent as per
            the ':internet.' tag.
 
  New       In order  to avoid causing  downstream servers to run  out of
            virtual memory or disk space when processing distributions to
            very  large lists,  LISTSERV  will now  ensure that  outgoing
            DISTRIBUTE jobs do not exceed a certain number of recipients,
            as specified by the  MAXDISTN system variable (default value:
            1000).  That is,  multiple jobs  with the  same data  will be
            generated,  whenever   necessary,  to  keep   the  individual
            recipients counts below MAXDISTN.
 
  New       The POSTMAST and POSTMASTER userids are now accepted as valid
            node administrator  sources. Note however that  requests from
            these addresses will  not work with servers  running an older
            version.
 
  New       Performance of  the GET command  has been improved  for files
            stored under  their real fileid. In  particular, requests for
            copies of BITEARN NODES will take  less CPU time and will not
            require an increase to the size of the 192 minidisk.
 
  New       New loop-detector option,  "Loopcheck= NoOrigin", permits the
            list owner  to disable the  check for "known  mailer origins"
            such as  MAILER, POSTMASTER,  ROOT, UUCP,  et al.  Mail whose
            'From:' field  is the  address of the  local mailer  is still
            trapped, but wildcard checks on the mail origin are disabled.
 
*****************************************************
* Usability: Support for the CMS Shared File System *
*****************************************************
 
WARNING: read the restrictions and usage notes carefully before migrating
         ANY minidisk to the SFS! This  is not a trivial exercise, due to
         the inherently different structure of SFS and minidisks.
 
Starting with release  1.7b, LISTSERV provides support for  the SFS under
CMS release 7  or higher, subject to the 3  following restrictions:
 
1. The  'ACCESS' command, when  issued without any parameter,  must cause
   LISTSERV's A-disk to be re-ACCESSed  properly. This is non-trivial due
   to the  unintuitive behaviour of  CMS when both  a 191 minidisk  and a
   default filepool are present: the minidisk is ignored and CMS accesses
   the top directory  at mode A. Thus,  if you decide not  to migrate the
   A-disk  to the  SFS,  you  must ensure  that  no  default filepool  is
   defined. On the other  hand, if you want to migrate  the A-disk to the
   SFS, a default  filepool must have been defined *and*  the A-disk must
   be the top directory in that filepool.
 
2. The D-disk must not be moved to  the SFS; it must remain a minidisk at
   virtual  address 192.  While this  restriction might  be removed  in a
   future version, you  should bear in mind that this  is the place where
   LISTSERV places all its temporary work  files: having it as a minidisk
   does have a number of advantages.
 
3. Care must be taken to  ensure that LISTSERV is guaranteed a reasonable
   amount of free  space on its A-disk, regardless of  how much space has
   been used up on other disks (list archives, file-server data, etc). As
   of the CMS7 version of SFS, this  means that the A-disk must either be
   a  minidisk or  reside  in a  dedicated file  pool,  with no  possible
   interference from the other disks.
 
Provided these restrictions  are met, you can freely  mix SFS directories
and  minidisks  as you  see  fit:  simply  supply a  fully-qualified  SFS
directory  name (eg  'SERVERS:LISTSERV.PUBLIC', and  not just  '.PUBLIC')
wherever LISTSERV would  accept a minidisk address  (not filemode). Thus:
 
                    "Notebook= Yes,L,Monthly,Public"
 
becomes:
 
        "Notebook= Yes,X1/SERVERS:LISTSERV.PUBLIC,Monthly,Public"
 
Again,  a SFS  directory  name  is not  an  acceptable  substitute for  a
filemode:  you must  use a  syntax  form where  minidisk *addresses*  are
accepted, and replace the virtual address with the directory name.
 
In  order to  reduce  the potential  for  misconfigurations resulting  in
potential disruption of production service, you are advised to use one of
the following recommended configurations, especially  if you feel you are
not  proficient  enough  with  the   SFS  yet  to  fully  understand  the
implications of migrating minidisks to SFS directories.
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>> Recommended SFS configuration 1: SFS for shared files only <<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
For a  site using a  mixture of SFS and  minidisks, the most  logical and
most manageable  configuration is to use  the SFS for "shared"  files (ie
list archives, file-server data) only. Keeping a 191 minidisk ensures the
A-disk will  not fill up unexpectedly  while writing to a  notebook file,
and should provide  better performance than a SFS  directory - especially
as  the top  directory is  always a  file control  directory with  higher
file-open overhead.  On the other hand,  using the SFS for  list archives
and the  like gives a  much better level of  control over who  can access
what archive  files, while users  don't have to worry  about re-ACCESSing
the public minidisk to gain access to new postings.
 
In that configuration, the 191 minidisk is unchanged, there is NO default
file pool, R/O files (BITEARN NODES et  al) still come from a R/O link to
a public minidisk, and selected minidisks are migrated to SFS directories
(directory control  directories are  recommended unless  you want  to use
access control  lists at the  file level). While  doing so, make  sure to
change:
 
- PROFILE EXEC, if you were ACCESSing "static" minidisks from there.
 
- The  MDISK./CHECKMDISK   entries  in  LOCAL   SYSVARS:  fully-qualified
  directory names  replace minidisk addresses.  Note that, since  the SFS
  does  not  presently   allow  you  to  define   quotas  for  individual
  directories, the  concept of  utilization ratio has  no meaning  at the
  directory level. The  values used when checking the  warning and logout
  thresholds are those  related to the file pool. In  other words, if you
  use a single  file pool for all your directories  and LISTSERV has used
  up 61% of its authorized quota  in this file pool, all directories will
  be said to be 61% full.
 
- The "Notebook=" keyword in all affected lists.
 
- All FILEID files referring to that minidisk.
 
WARNING: if you manually set up  a default file pool for your convenience
after logging on to  the server to edit files, do  not forget to undefine
it before starting up LISTSERV!
 
You may use the new (privileged)  SHOW STORAGE command, after starting up
LISTSERV, to check  the utilization ratios of all  accessed minidisks and
SFS directories.
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>> Recommended SFS configuration 2: SFS for all files <<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
Some sites have a strategic commitment to SFS and may want to migrate all
their services to SFS,  unless there is a very good  reason for not doing
so. In such  a configuration, the only minidisk that  would remain is the
D-disk (192), which  presently cannot be moved to SFS.  The checklist for
this configuration is the following:
 
1. Enroll LISTSERV in a first file pool, which should be made the default
   file pool  via with the  IPL directory  statement, and move  all files
   from the 191 to the top directory on that file pool.
 
2. Enroll  LISTSERV in  a  second file  pool and  migrate  all the  other
   minidisks (except the 192) to directories  in this file pool (for this
   step, the  instructions are the  same as for the  previous recommended
   configuration).
 
3. Log LISTSERV off and log it in from a terminal. Once the IPL procedure
   completes, check that the default file pool is that of the A-disk, and
   issue an  'ACCESS' command with  no parameter  to make sure  the right
   directory gets accessed again. Check that  the 192 has been brought up
   as filemode D (if not, add an 'ACCESS 192 D' command to PROFILE EXEC).
 
4. If  the R/O  configuration files (BITEARN  NODES et al)  are in  a SFS
   directory control directory, LISTSERV will never notice that they have
   been updated,  due to  the nature  of the SFS.  You are  thus strongly
   advised to:
 
   a. Cause LISTSERV to reboot once a day, by adding an entry to WAKEPARM
      FILE as follows:
 
      ALL      23:00:00 00/00/00 CP MSG * STOP REIPL
 
   b. Re-ACCESS the directories in question every hour (for instance), by
      adding a WAKEPARM FILE as follows:
 
      ALL      &01:00   00:00:00 CMS ACCESS whatever
 
****************************************************
* Performance: Introduction of the "PREXX library" *
****************************************************
 
One of the major changes in  release 1.7a was the introduction of support
for the  IBM REXX  compiler. "Live" tests  carried on  production servers
have since then indicated that  compiling LISTSERV results in CPU savings
on the order of 50%, while the  amount of virtual storage required by the
code is considerably increased (just the EXECLOAD'ed files add up to 1.3M
of virtual storage,  as compared to about 300k). While  this is obviously
better than  nothing, the REXX compiler  is clearly not the  panacea that
will  solve the  "LISTSERV  CPU  bill" problem  -  especially as  smaller
systems may have a hard time accomodating the increase in virtual storage
that it requires.
 
The "PREXX library" is a set  of VS PASCAL callable subroutines that will
make  it  possible to  convert  LISTSERV's  REXX  code to  PASCAL.  These
subroutines   include   usable   and   efficient   string   manipulation,
high-performance interface  with the  file system,  and a  REXX interface
making it possible for PASCAL procedures  to be called as REXX functions,
transparently  to   the  caller.  In   order  to  avoid   conflicts  with
locally-provided  RXxxxFN   function  packages,  a   different  mechanism
(via an  explicit bootstrap) has  been used: RXUSERFN and  RXLOCFN remain
available for local use.
 
IMPORTANT:  The PREXX  library is  not supported  for local  use. It  was
designed  for the  sole purpose  of converting  LISTSERV code  to PASCAL.
Problems occuring in different environments will not be addressed, unless
they would  also affect PREXX-based  LISTSERV code. Questions  related to
the use  of the PREXX library  in a non-LISTSERV environment  will not be
answered: this is a purely internal development tool.
 
With  release 1.7b,  two of  the most  frequently called  REXX functions,
LSVNADDR and LSV822TO,  have been converted to PASCAL;  in addition, part
of  the list  archive database  driver  (LSVDBNB) has  been rewritten  in
PASCAL, under the name LSVDN1. The two CPU-intensive functions require 10
to 15  times less  CPU time  than their  REXX counterparts  (counting the
seizable  SVC  202 overhead  during  the  calling  sequence in  the  REXX
interpreter), while  the I/O  intensive database  driver now  generates a
database index in  about half the CPU  time an 'EXECIO *  DISKR (SKIP' on
the input file would require. The new (privileged) command SHOW PREXX can
be used to obtain statistics on PREXX functions similar to those formerly
supplied by CMS EXECMAP/SHOW EXECLOAD.
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>> Important note to developers: renamed REXX files <<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
Application developers  should take  note of the  fact that  numerous key
REXX files  had to  be renamed  as a consequence  of the  introduction of
PREXX. Since  PREXX functions are  not written in  REXX, they have  to be
declared to  the REXX interpreter as  "external functions" - in  much the
same way as assembler REXX functions such as LSVFIF. Due to the interface
chosen by  the developers of the  CMS REXX interpreter for  that purpose,
only the  first 6 characters  of the  function name are  significant. For
instance, it  is not possible  to write  a REXX function  called CMSFLAME
EXEC, as  any reference to  CMSFLAME() in a  REXX program will  cause the
(IBM-supplied) external function CMSFLAG() to  be called instead (with no
error  or warning  message).  Since it  is not  possible  to bypass  this
mechanism, LISTSERV  REXX files whose  first 6 characters are  not unique
must  be renamed  before they  can  be converted  to PREXX.  In order  to
simplify maintenance, this conversion is being done with release 1.7b for
all  REXX  files  whose  conversion  is  likely  to  take  place  in  the
foreseeable future.
 
Files whose first 6 characters are not unique have thus been split into
three categories:
 
1. Functions which it is reasonable for an application developer to call.
   For these files,  a "shell" REXX file has been  provided under the old
   name, in  order to preserve compatibility  of existing locally-written
   applications. The "shell" merely calls the new routine, passing on the
   result if appropriate. Still, you are strongly advised to update local
   code  to refer  to the  new names,  both for  performance reasons  and
   because the  functions will unavoidably  be discussed under  their new
   names  on mailing  lists, given  enough time  for the  old name  to be
   forgotten. There  is no deadline  for this conversion, though,  as the
   "shells"  will  remain  on  LISTSERV's A-disk  until  you  erase  them
   manually. A list of these shells  can be found in RXSHELLS FILE (which
   will be updated if more shells are created).
 
2. Functions which  it is not reasonable for an  application developer to
   call directly.  These files have  been simply renamed  without leaving
   any "shell" behind.
 
3. Functions which will  not be renamed because there is  no plan to ever
   convert them to PREXX: LSVINST* EXEC and LSVUDD* EXEC.
 
IMPORTANT: "Shells" are provided only for compatibility reasons. They are
not a "stable programming interface". You are encouraged to erase them if
you have  no local  software relying  on the old  name; in  addition, new
LISTSERV installations will NOT be sent copies of shell files.
 
Here is a list of the function  name "clashes" and the way they have been
addressed:
 
LSVBESTP Unchanged
LSVBESTE -> LSVBSE (Shell supplied)
 
LSVCHK   Unchanged
LSVCHKBN -> LSVCKB (Added after 1.7a was released, so no shell)
 
LSVCKPRV Unchanged
LSVCKPRM -> LSVPRM (Shell supplied)
LSVCKPUN -> LSV00D
 
LSVCMD   Unchanged
LSVCMDFW -> LSVCFW
LSVCMD1  -> LSVCM1
 
LSVEXPIR Unchanged
LSVEXPLD -> LSVXPL
 
LSVFILID Unchanged
LSVFILEV -> LSVFLV
 
LSVGET   Unchanged
LSVGETFD -> LSVGFD
 
LSVHELD  Unchanged
LSVHELP  -> LSVHLP
 
LSVNAD   -> LSVADM (Shell supplied)
LSVNADDR -> LSVADR (Shell supplied; LSVADR converted to PREXX)
 
LSVSTOP  -> LSVSTP
LSVSTORE -> LSVSTL
 
LSVUPFID -> LSVUFI
LSVUPFL  -> LSVUFL
 
LSV822IN -> LSV82I (Original preserved)
LSV822TO -> LSV82T (Original preserved; LSV82T converted to PREXX)
 
Note:  for the  LSV822*  functions,  the original  REXX  files have  been
preserved because these  files are made available from  TOOLS FILELIST as
public domain  RFC822 "building  blocks" for application  developers. The
PREXX  counterparts   are  not   in  the  public   domain  and   are  not
plug-compatible (the PREXX library requires explicit initialization).
 
As a result  of this conversion, the following EXEC  files will no longer
be present on LISTSERV's A-disk after the installation of release 1.7b:
 
LSVCHKBN LSVCKPUN LSVCMDFW LSVCMD1 LSVEXPLD LSVFILEV LSVGETFD LSVHELP
LSVSTOP  LSVSTORE LSVUPFID LSVUPFL
 
**************************************
* Usability: IETF-style mail headers *
**************************************
 
WARNING: There are  a number of important warnings in  this section. Read
them carefully.  In particular,  IETF-style headers must  NOT be  used by
LISTSERV-to-usenet gateways.
 
DISCLAIMER:  All references  to  the discussions  of  the IETF  "listserv
working group" reflect  the author's personal appraisal of  the debate on
the working group's list, as of late august 1991 (shortly before the code
being described was  written). At this time, the group  did not expect to
produce a RFC (other than a  possible informational one) in the immediate
future, and the  first non-informational RFC was not  expected to address
the  topic of  mail headers.  This  topic has,  however, been  thoroughly
debated on the list, and it is this debate that the author's comments are
based upon.  The working group  archives are available via  anonymous FTP
from FTP.UTDALLAS.EDU,  should you want  to form  you own opinion  on the
matters at hand.
 
Up  to and  including version  1.7a,  LISTSERV provided  two flavours  of
RFC822 headers: SHORT,  with just the "essential" fields,  and FULL, with
all  fields  (including  those  usually  deemed  "superfluous",  such  as
'Received:').  For both  types of  header, two  delivery mechanisms  were
supported: "regular" delivery, with the recipient's address listed in the
RFC822 'To:' field, and "BSMTP" delivery,  with a generic 'To:' field not
pointing to the recipient. This resulted in four possible header options:
SHORTHDR, SHORTBSMTP, FULLHDR and  FULLBSMTP. The only difference between
the HDR and BSMTP  options is the contents of the  'To:' field, which for
the present discussion is immaterial: we  only need to consider the SHORT
vs FULL attribute of the header.
 
Due to  their different culture  and habits, Internet people  are usually
not satisfied with  either option. Most Internet users (or  at least most
of the vocal ones) read mail from workstations and use sophisticated user
interfaces which  hide "uninteresting" header fields  automatically; they
are  thus not  interested in  any removal  of "superfluous"  tags at  the
sending point (and contend that  the bandwidth saved is immaterial, given
T1-speed access).  They are furthermore  used to SMTP alias  lists, which
are basically  a feature of Internet  mail systems making it  possible to
have the mailer replace  a given mailbox with a list  of mailboxes on the
fly;  in other  words,  by  sending mail  to  [log in to unmask]  your message  is
automatically sent to a number of people as it reaches the host Y.EDU, by
causing the mail system to  internally expand the recipients list without
touching anything else.  In particular, the mail header  is unaltered and
still reads 'To: [log in to unmask] - the 'To:'  field is where you should look for
the list name. The IETF's "standard listserv" RFC's will be based on this
type of headers, and disallow the LISTSERV-style ones.
 
In order  to allow  BITNET users to  become familiar  with Internet-style
headers and  to decrease  the rate of  incoming "suggestions"  for future
development  of  LISTSERV from  Internet  users  forced to  subscribe  to
BITNET-based mailing lists for professional reasons, a third type of mail
header is being introduced: 'IETFHDR' (which always uses BSMTP delivery).
That is,  one would  send a  'SET XYZ-L IETFHDR'  command to  LISTSERV to
switch to IETF-style headers.
 
For  a regular,  non-peered  list,  the IETFHDR  is  the header  LISTSERV
received from the mail system with exactly three changes:
 
1. A 'Received:' line is added on top of the header.
 
2. A  'Message-ID:' field is added,  if none was present  in the incoming
   message.
 
3. The  'Sender:' tag is  set to the value  of the "Sender="  list header
   keyword, if one is supplied, or to 'OWNER-listname@hostname' (in lower
   case). For instance, a posting sent to the list [log in to unmask] would
   have a default 'Sender:' tag value of [log in to unmask]
 
It is important  to understand that these headers are  not being provided
in  answer to  requirements from  non-DP-literate users.  They are  being
provided to answer requirements from  Internet specialists; it is "their"
headers, not "ours".  They are not meant to be  user-friendly and are not
open to negotiations. They will  not spawn sub-options with various bells
and whistles  added. They are here  to allow LISTSERV to  emulate an SMTP
redistribution list if desired, and nothing more.
 
Note that  this does not mean  that LISTSERV will be  converted to become
compliant with the upcoming "IETF  listserv" standard, nor that setting a
list to use  IETFHDR for all subscribers will make  it IETF-compliant. It
is the author's  opinion that the "IETF listserv" standard  will not make
it  possible  for  LISTSERV  to be  compliant  without  becoming  totally
incompatible  and ceasing  to address  the  needs of  some categories  of
BITNET users. In particular, the very  fact of allowing users to request,
no matter  how explicitly, that  headers be  delivered in a  format other
than IETFHDR  would be a  violation of  the future standard,  assuming no
change  in the  direction  of  the working  group  from  what the  author
experienced during his participation. Since  the "IETF listserv" is going
to  be a  fully-specified standard  and  one of  the goals  of the  "IETF
listserv" working  group (again, assuming  no change of direction)  is to
see  to it  that it  is  implemented in  a  portable way,  it seems  more
appropriate  to have  whatever new  software the  Internet comes  up with
replace  LISTSERV, rather  than striving  to  turn LISTSERV  into a  poor
emulation of the latest fashion. Indeed,  it would seem unlikely for more
than  a small  minority of  sites to  want to  run such  a service  on an
expensive mainframe if it can be provided as easily on cheaper hardware.
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> IMPORTANT WARNINGS regarding the IETFHDR option <<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
A. LISTSERV does  not alter the header beyond the  three points mentioned
   above: insertion of a 'Received:'  line, generation of a 'Message-ID:'
   if  not already  present, and  generation of  a 'Sender:'  field. This
   means LISTSERV  cannot guarantee that  the header is  syntactically or
   semantically correct,  beyond the fields it  generates itself. Because
   of this, THE IETFHDR OPTION MUST  BE NOT USED FOR SUBSCRIBING PROGRAMS
   WHICH REACT ON THE CONTENTS OF THE HEADER. This means you must not use
   this option  for a usenet  gateway, but  you can subscribe  a "logger"
   program which just appends everything it receives to a disk file.
 
B. LISTSERV  does not (and  cannot) take control of  the "owner-listname"
   address, which is normally too long to be a valid VM userid. It is the
   responsibility of  the list  owner to  ensure that  an alias  for this
   address is set in the mailer at  the site hosting the list if he wants
   to receive delivery errors sent to that address.
 
C. In a peered-list environment, the IETFHDR option will operate properly
   only if ALL peers  are running release 1.7b or higher.  If this is not
   the case, some postings sent to  IETFHDR subscribers may appear with a
   FULLBSMTP-like header;  this is not  a bug,  but a consequence  of the
   simple fact  that the original  header has  not been preserved  by the
   peer to which the posting was sent.
 
D. If  the posting  received by  LISTSERV comes  in a  format other  than
   RFC822 (eg  PROFS), LISTSERV  will generate  a new  header out  of the
   information at hand.  Such a header may look  "suspiciously short", so
   it was felt necessary to mention this possibility.
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> End of important warnings <<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
Here  is  an  IETFHDR-style  header   example,  built  from  an  INFO-VAX
contribution using a test list (L201@SEARN) for formatting the headers:
-------------------------------------------------------------------------
Received: by SEARN (Mailer R2.05) id 0023; Fri, 18 Oct 91 15:23:22 +0100
Received: from SEARN.BITNET by SEARN.SUNET.SE (LISTSERV release 1.7a) with NJE
          id 0005 for [log in to unmask]; Fri, 18 Oct 1991 15:22:52 +0100
Received: from DEARN by HEARN.BITNET (Mailer R2.07) with BSMTP id 4454; Thu,
          17 Oct 91 14:28:43 CET
Received: by DEARN (Mailer R2.08) id 4111; Thu, 17 Oct 91 14:27:44 CET
Received: from vtvm2.cc.vt.edu by DEARN (Mailer R2.08) with BSMTP id 5972; Thu,
          17 Oct 91 11:53:31 CET
Received: by VTVM2 (Mailer R2.08 R208002) id 6841; Thu, 17 Oct 91 06:54:17 EDT
Received: from VMA.CC.CMU.EDU by vtvm2.cc.vt.edu (Mailer R2.08 R208002) with
          BSMTP id 6831; Thu, 17 Oct 91 06:52:10 EDT
Received: by CMUCCVMA (Mailer R2.04) id 2335; Thu, 17 Oct 91 06:48:43 EDT
Received: from UGA.CC.UGA.EDU by VMA.CC.CMU.EDU (Mailer R2.04) with BSMTP id
          2331; Thu, 17 Oct 91 06:46:33 EDT
Received: by UGA (Mailer R2.07) id 1757; Thu, 17 Oct 91 06:49:07 EDT
Received: from CUNYVM.BITNET by UGA.CC.UGA.EDU (Mailer R2.07) with BSMTP id
          1753; Thu, 17 Oct 91 06:48:35 EDT
Received: from CUNYVM by CUNYVM.BITNET (Mailer R2.08) with BSMTP id 1159; Thu,
          17 Oct 91 06:48:35 EDT
Received: from CRVAX.SRI.COM by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with
          TCP; Thu, 17 Oct 91 06:48:33 EDT
Received: From DANPOST.UNI-C.DK by CRVAX.SRI.COM with TCP; Thu,
          17 OCT 91 03:01:39 PDT
Received: from vms2.uni-c.dk by danpost.uni-c.dk (5.65/1.34) id AA05308; Thu,
          17 Oct 91 10:01:27 GMT
X-Envelope-To: [log in to unmask],
               agate!spool.mu.edu!uwm.edu!zaphod.mps.ohio-state
               .edu!wupost!micro-heart-of-gold
               [log in to unmask]
X-Vms-To: UNIL63::IN
          %"agate!spool.mu.edu!uwm.edu!zaphod.mps.ohio-state.edu!wupost!micro-h
          eart-of-gold.mit.edu!news.bbn.com!star-trek!cmiksis
          @UCBVAX.BERKELEY.EDU"
X-Vms-Cc: IN::"[log in to unmask]"
Message-ID: <[log in to unmask]>
Newsgroups: bit.listserv.info-vax
Date: Thu, 17 Oct 1991 11:01:00 +0200
Sender: [log in to unmask]
Comments: Warning -- original Sender: tag was INFO-VAX@DEARN
From: <deleted for privacy reason>
Subject: Re: Would should a descriptors length be?
To: L201@SEARN
 
(message text removed)
-------------------------------------------------------------------------
 
Note that the contents of the list  archives are always kept in a special
version of the SHORT header style (without 'To:' field). This is the only
format the database driver can handle,  and with the IETFHDR format there
would be no guarantee that all  the information required by the driver is
present and  valid. If you want  public archives in IETFHDR  format, just
subscribe a "logger"  program on your local anonymous  FTP workstation to
the list with the IETFHDR option.
 
***********************************************************************
* Clarification: File requests from NJE nodes with Internet addresses *
***********************************************************************
 
This item  does not describe a  change but merely documents  more clearly
the behaviour  of LISTSERV, when  processing file requests (such  as 'GET
SOME FILE') sent via mail with the  Internet address of a node which also
has BITNET access  and has properly registered a ':internet.'  tag in its
BITEARN NODES entry.
 
Contrary to what experienced users expect,  the file is usually sent back
via mail,  and not via  the preferred  file format registered  in BITEARN
NODES. This is  not because LISTSERV fails to recognize  that the request
is coming from  a node with BITNET  access, nor because it  fails to read
the preferred file format for that node; it is a design decision.
 
The requirement  here is that non-technical  users, who only know  how to
use  mail and  have little  or no  knowledge of  BITNET or  the operating
system  they are  using, should  not be  forced to  learn about  non-mail
commands they have no need for. Thus,  if such a user mails a GET request
for  a plain  text file  to a  list  server, he  expects the  file to  be
deposited in  his mailbox, in  the same format as  the rest of  his mail.
Sending the file  in (say) Netdata format just because  this user happens
to be connected to BITNET and the node can handle Netdata would make life
much more  difficult for him: he  would get the impression  that the file
never arrived, and have  to call user support to find out  how to copy it
to his "normal mailbox". On the  other hand, a BITNET-literate user would
surely know how to extract a text file from a mail message.
 
Note that,  if LISTSERV determines  that the  requested file will  not be
usable if  sent via mail,  it will bypass LISTSERV-Punch  encoding (which
requires special processing from the user anyway) and use RSCS to deliver
the file. The rationale here is that the level of local support for (say)
Netdata is  likely to  be much  higher than  for LISTSERV-Punch:  in most
cases,  there will  be  an operating-system  command  to convert  Netdata
format, whereas  LISTSERV-Punch usually requires  the user to  obtain and
compile his own conversion program.  In addition, LISTSERV-Punch does not
always preserve binaries.
 
If the file request comes via mail but with a .BITNET address, the result
will NOT be sent via mail. The  assumption here is that BITNET sites with
Internet  access  configure  their  mail system  to  use  their  Internet
hostname by  default in outgoing  headers. Thus,  if the user  is writing
from  a site  with Internet  access, he  knows about  the Internet/BITNET
duality,  knows  enough about  the  mail  system  to change  the  default
hostname, and  presumably had a  good reason to want  to do that:  such a
user is most probably BITNET-literate. The  case of a user writing from a
site without Internet access can be  debated endlessly, as such sites may
indeed have users  that only know about mail. The  behaviour was kept the
same whether or not the site has Internet connectivity for three reasons:
 
1. It is what LISTSERV always did  for these users, and there has been no
   change on the user's side. On the  other hand, in the case of Internet
   sites using their Internet hostname in  mail headers, there HAS been a
   change on the user's side (even though it may not have been the user's
   decision).
 
2. It is easier to explain to non-technical users.
 
3. The  behaviour does not change  unexpectedly if a ':internet.'  tag is
   added (and does not vary according to the version of BITEARN NODES the
   various servers are using).
 
A BITNET-literate user wishing to order a file via mail (because the link
to the server  is down) and get it  in (say) Netdata format can  do so by
sending the request as a non-mail file, by using a .BITNET address in the
'From:' field,  or by explicitly selecting  the file format via  the 'F='
keyword (eg 'GET  SOME FILE F=NETDATA'). One easy solution  is to write a
procedure,  with  the  same  syntax  as  the  command  you  use  to  send
interactive  messages, that  places the  message in  a one-line  file and
sends it  to the recipient.  Thus, after  trying a request  via (assuming
VM/CMS) 'TELL  LISTSERV AT  XYZ', you would  just retrieve  your command,
replace 'TELL' with (say) 'TN', and hit ENTER again.
 
*********************************
* Clarification: AFD/FUI design *
*********************************
 
This item  does not describe a  change but merely documents  more clearly
the design objectives of the  AFD/FUI functions and, in particular, their
behaviour when presented with Internet addresses.
 
The  purpose  of the  AFD  function  is  to  take advantage  of  BITNET's
unsolicited  file  transfer  function  and  make it  easy  for  users  to
subscribe, mainly but not exclusively,  to software packages. In order to
present a more uniform interface,  Internet addresses are also supported.
Unfortunately, the design  objectives do not match the  expectations of a
number of list owners and LISTSERV maintainers.
 
Based on  the design  objectives, it  is not  reasonable for  a mail-only
Internet user to subscribe  to an object file via AFD. If  he does so, he
will be sent  a file via mail  but that file will probably  not be usable
due to character code translation and  the like. This may be unfortunate,
but it is consistent  with the fact that the same thing  happens if a GET
command is  used to order the  same file. In  other words, this is  not a
problem with the AFD function.
 
It is common practice for list owners to set up a file archive associated
with their  list; this  file archive  may contain  basically any  type of
material in  support of the activities  of the list. In  many cases, this
archive will only contain plain  text files (minutes, papers, etc). These
files might be quite  large, and it may happen that a  subset of the list
membership is  not interested in  receiving these  files. It may  thus be
desirable to refrain  from posting a copy  of the files to  the list, and
merely announce their  availability (via the GET  command) for interested
parties. Such a setup makes it  natural for interested users to subscribe
to the  files via AFD, so  that they do not  have to use GET  every time.
From this point it may be tempting for the list owner to consider the AFD
subscriptions as  an extension  of his  mailing list,  and to  attempt to
manage it in  the same way as the list  - sending administrative requests
on  behalf of  its  members.  These requests  are,  however, rejected  by
LISTSERV due to lack of suitable privileges.
 
One of the cornerstones  of the design of AFD is  that the user maintains
his AFD list  by himself, and that  subscribing to a file  is a voluntary
act. His node administrator is, of course, allowed to make changes on his
behalf, which is consistent with  the general LISTSERV policy of allowing
registered  administrators to  act on  behalf  of their  users. The  file
owner, however,  is not allowed to  subscribe people to one  of his files
just because  he owns it, nor  to delete existing AFD  subscriptions. The
potential for abuse and the integrity  exposure is too high to allow such
functions  to be  performed by  just anyone  who owns  a file.  Since AFD
subscriptions are usually locked with a user-chosen password, toying with
RFC822 headers does not work either.
 
The bottom  line is  that AFD is  not a mailing  list for  documents, and
should not be used for that purpose. If your "business need" is to have a
list of people  interested in getting a copy of  the voluminous documents
you are posting, AND you require the ability to manage it yourself like a
mailing list,  then what you  need is,  simply, another mailing  list, to
which you can  post new documents as they become  available. You can even
AFD the list address to the files with F=MAIL to automate this process.
 
***************************************************
* Serviceability: Changes in RFC822 quoting rules *
***************************************************
 
RFC822 requires  names to be quoted  in fields such as  'From:' and 'To:'
whenever they  contain one or  more characters  from the SPECIALS  or CTL
sets. SPECIALS, being  an enumerated list of  characters (angle brackets,
period, comma, etc)  is unambiguously defined on EBCDIC  machines. CTL on
the  other  hand  represents  all   ASCII  control  characters,  and  the
corresponding EBCDIC  meaning is open  to interpretation. While  most IBM
systems programmers consider "EBCDIC control  characters" to refer to the
X'00'-X'3F' range,  the VM mailer  uses a more exotic  definition whereby
basically anything  but A-Z and 0-9  is a control character.  This causes
problems with "national characters" in most languages - LISTSERV does not
quote them, since  it does not consider national characters  to be EBCDIC
control codes, and the VM mailer refuses to process the message, since it
has a different definition.
 
Even though  the author disagrees  with the  definition the VM  mailer is
using and  takes objection at  the ethnocentric behaviour it  results in,
LISTSERV has been modified to force quoting  in all cases where it is not
unambiguously  obvious that  the name  contains no  special or  "control"
character.  The  list   of  characters  not  causing   quoting  has  been
double-checked against version 2.05 of the VM mailer.
 
*****************************************************************
* Serviceability/Performance: Improvements to the SERVE command *
*****************************************************************
 
The effects of  a SERVE OFF command from the  LISTSERV postmaster are now
permanent - only  a SERVE ON command by a  postmaster will restore access
to the user. In other words, it is  no longer possible for a user who has
been banned by a LISTSERV postmaster to restore his access himself, using
someone else's account. Apart from the obvious benefits when dealing with
malicious users, it ensures that  disabled gateways are not inadvertently
re-enabled  by  well-meaning  end-user  who do  not  understand  all  the
implications their attempt.
 
In addition,  in order to  reduce the size of  the SERVE data  in LASTING
GLOBALV,  decrease  virtual  storage   utilization  and  improve  overall
performance, only data effecting a change in SERVE status (from OFF to ON
or  vice-versa) are  written  to permanent  GLOBALV  variables. In  other
words, the counters  are reset every time LISTSERV  is rebooted, although
locked users remain  served out until their access  is manually restored.
Finally, LSVCLGBV has been modified  to remove any LASTING GLOBALV record
containing a SERVE counter not causing access to be denied. Note that the
savings  in virtual  storage  will  not become  apparent  until you  have
rebooted LISTSERV (after running LSVCLGBV).
 
************************************************************************
* Serviceability: "Welcome message" bounces now returned to list owner *
************************************************************************
 
LISTSERV-generated list administration  messages (including the "Welcome"
message sent  to new subscribers)  now include a  special 'X-LSV-ListID:'
header tag that makes it possible for LISTSERV to forward delivery errors
caused by these  messages to the list owner, rather  than the postmaster,
PROVIDED that  the mail  system generating the  error message  includes a
copy of the  original header in the delivery error  (which is usually the
case). Since some mail system do not even mention the failing address (eg
"Unknown xyzmail error  133 processing your mail  dated **unknown**"), it
is not  possible to  guarantee that  this will  always happen.  Note that
setting the mail  origin to that of  the list owner is  not practical, as
the wording of  these administrative messages is not  suitable for direct
person-to-person  (rather than  computer-to-person) mail,  and the  owner
probably does not want to receive  the "Mail sent to..." messages from VM
mailers.
 
**********************************************************
* Serviceability: SHOW STORAGE and "REXX traceback trap" *
**********************************************************
 
Recent  bugs  in  CMS (a  storage  cancer  bug  in  CMS 5.x  and  a  REXX
interpreter bug in CMS 6) have caused a large amount of REXX errors to be
reported to LISTSERV coordination  recently. These automatic reports from
the server  are not very useful,  because they only indicate  that a REXX
error  took place  while processing  a  particular command;  they do  not
include any indication regarding the nature of the error (since the error
does not happen within the program  detecting and reporting it but as the
result  of a  CALL statement,  the REXX  SIGL and  ERR variables  are not
meaningful in this context). Due to the amount of error reports received,
it is  not possible  to individually ask  LISTSERV maintainers  to supply
console logs for each and every error. But in order to assist the site in
solving this problem, LISTSERV coordination needs to know whether this is
a "Machine storage exhausted", "Interpreter  failure" or other error and,
in case of storage exhaustion, how  much storage is actually available to
LISTSERV.
 
The "REXX  traceback trap"  addresses the  first problem  by continuously
recording console  messages in  a wrap-around buffer.  When a  REXX error
occurs, the REXX interpreter traceback  can be extracted from that buffer
and included  in the  automatic error report  (there is,  regretfully but
unsurprisingly, no standard REXX or CMS function to obtain a copy of such
tracebacks). As a side-effect, it is  now possible for LISTSERV to return
the  last 20  lines of  trapped console  output to  the issuer  of a  CMS
command (ie 'TELL LISTSERV CMS LISTFILE LSVX* EXEC' would return up to 20
lines  of LISTFILE  output). Note  however  that LISTSERV  does not  trap
messages issued through  certain console I/O services (the  list of which
furthermore varies according to the release  of CMS you are using); there
is thus  no guarantee that all  console output will be  returned, and you
should check the console log if in doubt. Again, the one and only purpose
of this "traceback trap" is to  trap error messages generated by the REXX
interpreter, and anything else is just a fortunate side-effect.
 
The  new  (privileged)  SHOW  STORAGE command  displays  virtual  storage
statistics  including  total amount  of  actually  available storage  and
various figures related to storage  fragmentation. This makes it possible
to detect  storage cancers by  issuing the command at  regular intervals.
Note that  it is  normal for  available storage to  decrease for  a while
after restarting LISTSERV,  as network activity cause  files eligible for
caching to  be actually read  and cached. This  also made it  possible to
improve the boot-time  warning about available storage,  since the amount
of actually available storage (rather  than the virtual machine size) can
be queried.

ATOM RSS1 RSS2