===========================================================================
2002/09/04: v0.6.1

* bin/extract-mesg-date:
  . Added check for new MSG_DATE_FIELDS config.sh variable denoting
    the message header fields to extract the date from.  The
    value of MSG_DATE_FIELDS is used if -datefields is not specified.

* bin/filter-spool:
  . If there is no mail in the spool, but .newmail exists,
    filter-spool will still process .newmail.  .newmail is the
    messages copied from the spool when filter-spool is executing.
    In the past, even if .newmail exists, no mail in the spool
    will cause filter-spool to exit.

* bin/web-archive:
  . Added check for MSG_DATE_FIELDS config.sh variable.  If set,
    its value will passed to MHonArc via the DATEFIELDS resource.
  . Define $MESG-CGI$ resource variable for use within MHonArc
    resource files.

* cgi-bin/extract-mesg.cgi.in.dist:
  . Internal changes so its uses new MHArc::CGI utility routines.
  . POD added.

* cgi-bin/mesg.cgi.in.dist:
  . NEW: New CGI program to extract a message from an archive based
    upon message-id.  This allows for persistent URLs to messages
    that are immune to archive rebuilds that could change MHonArc
    message numbers.

    This CGI is referenced in the updated lib/common.mrc.in.dist
    resource file via the $MESG-CGI$ resource variable.  It is
    used for the new [Bookmark Link] on message pages.

* cgi-bin/mnav.cgi.in.dist:
  . Added some sanity checks to argument input.
  . Internal changes so its uses new MHArc::CGI utility routines.
  . POD added.

* lib/common.mrc.in.dist:
  . Added "[Bookmark Link]" to message page layout to provide a
    persistent link to the message.  The link provided makes use
    of the new mesg.cgi CGI script.

* lib/config.sh.dist:
  . Added MSG_DATE_FIELDS: List of message header fields to extract
    the date for a message.
  . Added MESG_CGI: URL to persistent message reference CGI program
    (mesg.cgi).

* lib/MHArc/CGI.pm:
  . NEW: Shared CGI utility routines for mharc CGI scripts.

* lib/MHArc/MailUtil.pm:
  . extract_date() routine changed to handle indexed header fields
    in date fields argument.

    CAUTION: Only use indexed field specification if you are using
    a version of MHonArc *newer than* 2.5.11.  MHonArc v2.5.11,
    and earlier versions, do not support indexed fields for the
    DATEFIELDS resource.

* lib/MHArc/Namazu.pm:
  . NEW: Collection of routines related to Namazu.

===========================================================================
2002/08/26: v0.6.0

* bin/compress-files, bin/compress-mboxes:
  . BUG FIX: Added -mbox-mode to compress-files.  This is to fix a bug
    with compress-mboxes for archives that have yearly archives.
    If a mailbox is in YYYY format, a year is added to -mtime to
    determine if the file should be compressed.

* bin/web-archive:
  . NEW: Added auto-generation of all-lists index.  The index will
    contain the list of archives with links to the latest indexes
    and showing the last update time for each archive.

    The all-lists index file can be specified by the -alllistidx
    option or ALL_LISTS_INDEX lib/config.sh variable.  The default
    value is lists.html within the html/ archive directory.
    Equivalent options exists to set the URL to the file.

    Run web-archive program with -man option to view the manpage
    to get more information about this feature and other related
    options.

* lib/common.mrc.in.dist:
  . Several layout changes to provide a nicer appearance to archive
    pages.  Layout is now controled via stylesheet settings.
    Tags have been added with CLASS attributes to allow control
    of the visual appearance of pages without having to re-edit
    the pages.  An initial stylesheet (html/stylesheet.css.in.dist)
    has been provided with some default styles (more information
    about stylesheet below).

    Attempts have been made to keep pages usable with text-based
    browsers.  Table-aware browsers like w3m and links, handle
    the pages fine.  Lynx does not handle the tables well, but
    the pages should still be readable and usable with Lynx.

    To see an example of the layout style, you can checkout the
    mhonarc.org mailing lists at
    <http://www.mhonarc.org/archive/html/>.

    If you want to use the new layout, you must delete your local
    copy of "lib/common.mrc.in" and run "make configure".

* html/stylesheet.css.in.dist:
  . NEW: This is the main stylesheet controling the appearance
    of archive pages generated by MHArc.  Stylesheet settings are
    based upon the CSS2 specification.  The styles are supported by
    Netscape 6+, Mozilla, and Mozilla-based browsers.  Some styles
    appear to not work with IE6, however, the failures of IE6 do not
    affect the readability of pages.

* lib/mrc/_nothread.mrc.in.dist:
  . NEW: MHonArc resource file use by archives that have threads
    disabled, either by specifying -nothreads in the MHonArc-Options
    option in lib/lists.def for a list or by a list-specific resource
    file.

    NOTE: There is a feature in MHArc that has not been explicitly
	  documented that allows you to provide additional
	  MHonArc resource settings on a per-list archive basis.
	  In lib/config.sh is a variable called MHA_RC_DIR that
	  specifies the location of archive-specific resource files.
	  By default, it is "<mharc-root>/lib/mrc".  If you add a
	  file called "<list-name>.mrc", where "<list-name>" is the
	  name of the list as defined in lib/lists.def, MHArc will
	  pass that file to MHonArc when processing the HTML archive
	  for the list.

	  When creating a list-specific resource file, it is
	  recommended to create the file
	  "<mharc-root>/lib/mrc/<list-name>.mrc.in" and then run
	  "make configure".  This allows you to use lib/config.sh
	  variables (e.g. "@@HTML_URL@@") in your resource file.

    A way to reference _nothread.mrc in a resource file is to have
    the following in the ".in" template version of a list resource
    file:

      <Include>
      @@MHA_RC_DIR@@/_nothread.mrc
      </Include>

    When "make configure" is executed, the "@@MHA_RC_DIR@@" will get
    expanded to the pathname location where archive-specific resource
    files are kept.

* lib/config.sh.in.dist:
  . Added the following variables:

      # Pathname of archive lists index page.
      ALL_LISTS_FILE=$HTML_DIR/lists.html

      # Pathname of header template for archive lists index page.
      ALL_LISTS_HEADER=$HTML_DIR/.PNM.all-head

      # Pathname of header template for archive lists index page.
      ALL_LISTS_FOOTER=$HTML_DIR/.PNM.all-foot

      # Directory containing informational pages about each list archive.
      INFO_DIR=$SW_ROOT/info

      # Base URL containing informational pages about each list archive.
      INFO_URL=$ROOT_URL/info

    The INFO_DIR and INFO_URL are used when generating the
    all-lists index page.  They give the ability for you to create
    an informational page for each list archive.  Run web-archive
    program with -man option to view the manpage add read about the
    -infodir and -infourl options for more information.

* cgi-bin/template/NMZ.head.in.dist, html/.PNM.head.in.dist:
  . Minor change to labels for sorting search results by date.
    Newer labels should be clearer about the ordering of dates since
    previous wording can be ambiguous.

    If you want to use the newer versions, delete
    "cgi-bin/template/NMZ.head.in" and "html/.PNM.head.in" and run
    "make configure".

===========================================================================
2002/07/31: v0.5.1

* cgi-bin/extract-mesg.cgi.in.dist:
  . Changed returned media-type from message/rfc822 to text/plain.
    message/rfc822 is nice since some browsers can render it directly,
    but it does open potential XSS HTML email attacks.

    IMPORTANT NOTE: User upgrading are encouraged to delete
		    "cgi-bin/extract-mesg.cgi.in" and run 'make
		    configure' after extracting this release.  If you
		    really want the message/rfc822 behavior, you can
		    edit "cgi-bin/extract-mesg.cgi.in" and redefine
		    the $message_media_type variable.

* bin/mk-procmailrc:
  . Added -final-dest option: The destination of messages that make
    it to the end of the procmailrc.  Generally, this option can
    be ignored.

    Run mk-procmailrc program with -man option to view the manpage
    to get more information about this option.

* etc/apache.conf.in.dist:
  . Security related comments added.  Users are encourage to read
    if using etc/apache.conf.

* lib/config.sh.dist:
  . Added FINAL_MSG_DESTINATION variable to repesent destination
    mailbox for end rule in procmailrc (checked by mk-procmailrc if
    -final-dest not specified).

===========================================================================
2002/07/24: v0.5.0

* bin/mk-procmailrc
  . Added -out option that can be used to specify the name of
    the procmailrc file to generate.  If not specified, the PROCMAILRC
    variable in lib/config.sh is used.  Otherwise, the default value is
    "$SW_ROOT/procmailrc.mharc";

    IMPORTANT NOTE: This implies that the name of the main procmailrc
		    used by mharc has changed from
		    $SW_ROOT/.procmailrc.  This is to avoid potential
		    conflict with environments that use Procmail as a
		    local delivery agent and MHArc has been extracted
		    in the home directory of the archiving account.

		    If upgrading, all you should have to do is
		    invoke "make" to create the procmailrc with
		    the newer filename.  Then, you can remove the
		    old .procmailrc.

* bin/web-archive:
  . BUG FIX: Restored older semantics for $LIST-NAME$: It equals the
    list name as represented by the directory name for the list
    archives.  This change back only has an effect for complimentary
    CVS commit archives since the $LIST-NAME$ is used as the search
    index name.

    A new resource variable, $LIST-TITLE$, is used to represent the
    displayable list name.  For CVS commit archives, this variable
    will have the "[CVS] " prefix.

    In sum, everywhere the list name is used in links or form input
    elements, use $LIST-NAME$.  Anywhere else, $LIST-TITLE$ can
    be used.

  . Added $EXTRACT-CGI$ resource variable
    (see cgi-bin/extract-mesg.cgi.in.dist change entry below for
    more information).

* cgi-bin/extract-mesg.cgi.in.dist:
  . NEW: CGI program to extract original raw message.  It is intended
    to be used in HTML archive message pages to allow the reader to
    retrieve the original mail message.

    The file lib/common.mrc.in.dist has been modified to include
    an "[Original]" link on messages pages.  If you would like this
    feature in an existing mharc archive, you will need to edit
    your lib/common.mrc.in an add the link.  Here is the resource
    setting added to lib/common.mrc.in.dist:

    <TopLinks>
    <hr>
    $BUTTON(PREV)$$BUTTON(NEXT)$$BUTTON(TPREV)$$BUTTON(TNEXT)$[<a
    href="$IDXFNAME$#$MSGNUM$">Date Index</a>][<a
    href="$TIDXFNAME$#$MSGNUM$">Thread Index</a>][<a
    href="$EXTRACT-CGI$?a=$LIST-NAME:U$&amp;m=$CUR-PERIOD$&amp;i=$MSGID:U$"
    >Original</a>]
    </TopLinks>

* lib/config.sh.dist:
  . Added EXTRACT_CGI variable that represents URL to extract-mesg.cgi.
  . Added PROCMAILRC variable to define main procmailrc file used
    by bin/mk-procmailrc and bin/filter-spool.
  . Added ORGMAIL_LOCK_TIMEOUT to set lock timeout used by filter-spool.
  . Added LOG_DIR variable to represent location to place log files.

* lib/common.mrc.in.dist:
  . Replaced $LIST-NAME$ with $LIST-TITLE$ in MSGPGBEGIN resource.

* etc/apache.conf.in.dist, etc/.htaccess.conf.in.dist:
  . Added denial of files starting with "procmail".

* bin/apply-conf:
  . Explicitly remove group and other write bit on generated files
    that are executable.  This helps avoid Apache HTTP server suEXEC
    problems with CGI programs.

* bin/filter-spool:
  . Rewritten in Perl.  Run program with -man option to view manpage.

* bin/read-mail:
  . Rewritten in Perl.  Run program with -man option to view manpage.

===========================================================================
2002/07/19: v0.4.0

* bin/compress-mboxes:
  . FIX: Fixed handling of -n and -debug options.

* lib/config.sh.dist:
  . FIX: Default PROCMAIL_PATH setting uses $SW_ROOT/bin instead of
    $HOME/bin.  Installations should update local config.sh
    to reflect change.

  . Added MHONARC_LIB: Directory pathname to where MHonArc libraries
    are installed.  If MHonArc libraries are in a location not included
    in perl's library search path, this variable should be set to
    that location.

  . Added MSGID_CACHE_SIZE: Maximum size, in bytes, of msgid cache
    for detecting duplicate messages.

  . Reorganized file to put key variables at top of file and to
    provide a comment description before each variable.

* bin/mbox-month-pack:
  . NEW: New utility program for breaking up a mailbox file into
    monthly, or yearly, mailbox files.  This program can be useful
    for importing existing mailbox files into MHArc.  Run program with
    the -man option to view manpage.

* bin/mk-procmailrc:
  . Added support for "From-Address: " option in lists.def.  This
    option allows you to denote a list by the "From: " field of
    messages.  Run mk-procmailrc with -man option for more information.

  . "Cleaned-up" the procmailrc file generated.  The "Extraneous
    copy flag" warnings should be gone.  Also, rules changed to use
    new bin/extract-mesg-date to determine which raw mailbox to file
    to instead of the current time.  This insures that messages go
    into the proper period mailbox regardless of when incoming mail
    is processed.

* bin/extract-mesg-date:
  . NEW: New utility to print out the date of a message.  This
    program is mainly used in newer procmailrc format generated
    by mk-procmailrc.

===========================================================================
2002/07/08: v0.3.0

* mk-procmailrc:
  . Can now specify name of catch archive and if catch archive should
    be disabled via the CATCH_ARCHIVE and DISABLE_CATCH_ARCHIVE config.sh
    variables.

  . POD added to script along with -help and -man options to display
    usage information.

* web-archive:
  . Added check for <!--x-search-form--> and <!--/x-search-form-->
    comment declarations in period index header/footer templates:
    .PNM.head.in and .PNM.foot.in.  If an archive is designated
    to not have searching enabled, any markup between these two
    comments will be stripped out when generating the period index.

    If upgrading, and if you are using the default .PNM.*.in files,
    you will need to delete them so the newer versions with the above
    comments will be applied.  If you have customized versions of
    .PNM.*.in files, you will need to add the above comments around
    the search form markup if you want the form to not appear in the
    top period indexes for non-searchable archives.

  . CVS commit archive of a list properly uses list options defined
    in lib/lists.def.

  . Short title of CVS commit archives has changed from
    "<list-name>.CVS" to "[CVS] <list-name>".

* bin/compress-files:
  . Add POD.  Execute './bin/compress-files -man' to view
    documentation.

* bin/compress-mboxes:
  . Converted to Perl.  POD added along with some command-line options.
    Execute './bin/compress-mboxes -man' to view documentation.

* bin/gc-search-indexes
  . Converted to Perl.  POD added along with some command-line options.
    Execute './bin/gc-search-indexes -man' to view documentation.

* etc/apache.conf.in.dist:
  . Updated to add <File> directives to deny access to various files
    that you may not want visible to the public.

* etc/.htaccess.in.dist:
  . NEW: Contains the same <File> directives added to
    etc/apache.conf.in.dist.  This file is useful if you do not have
    write access to Apache's main configuration file.

    The .htaccess file generated after 'make configure' can be copied
    into the root install directory, or better, create a symlink
    to it from the root by executing the following command in the
    root install directory.

      ln -s ./etc/.htaccess

* Makefile:
  . Added editrootidx target: Rebuild top period indexes only.

===========================================================================
2002/05/30: v0.2.2

* apply-config: Modified interaction with File::Find module so it
  will work with older versions that do not support the -no_chdir
  option.

===========================================================================
2002/05/24: v0.2.1

* mk-procmailrc: Fixed bug where setting an archive to a Period of
  a year had no effect: archive would have a monthly period.

===========================================================================
2002/05/22: v0.2.0

* web-archive: Added -mharcdir option to specify location of list
  specific resource files.  If the file <-mharcdir>/<list-name>.mrc
  exists, it will be passed into mhonarc, after common.mrc.

* web-archive: Added support for additional mhonarc options to be
  specified in lists.def by defining the MHonArc-Options field.

* web-archive: If the No-Search lists.def field is set to 1 for
  a list, then searching will be disabled for the archive: no search
  index will be created and the $SEARCH-FORM$ custom resource variable
  will be set to the empty string.

* web-archive: Changed some of the default pathname values of some
  options.  In sum, default pathnames that include "../archive/.."
  had the "archive/" component removed.

* web-archive: The following resource variables set have different
  names:

    $MNAV-CGI$  => $PNAV-CGI$
    $CUR-MONTH$ => $CUR-PERIOD$

  The old names are still set for backwards compatibility.

* web-archive: The "[Raw]" link on the top index page of a list
  archive is now "[mbox]".  Also, it will show the size of the mbox
  in bytes and if the mbox is gzipped.

* lib/common.mrc.in.dist:

  . Removed options in MIMEARGS that could cause security problems.
    Users can add options that fit their level of comfort.

  . Added definition of $PREV-PERIOD-LABEL$ and $NEXT-PERIOD-LABEL$
    which are defined as "Prev&nbsp;Period" and "Next&nbsp;Period",
    respectively.

    These variables are used for the next/prev period links on the
    index pages.  Note, these values are a change from the
    "Prev&nbsp;Month" and "Next&nbsp;Month".

  . The next/prev resource variables for the next/prev period links
    have different names:

      $NEXT-MONTH-LINK$ => $NEXT-PERIOD-LINK$
      $PREV-MONTH-LINK$ => $PREV-PERIOD-LINK$

* read-mail:  Added explicit "exit 0" at end of script.  This is
  to avoid a bogus non-zero exit status of filter-spool finds nothing
  to do.

===========================================================================
2002/02/14: v0.1.3

* web-archive: Went back to calling namazu for each list folder
  processed.  The change in v0.1.2 defeats the ability to conserve
  resources by keeping namazu from re-indexing the entire list
  each time.

* web-archive: Check status of mhonarc processing.

* web-archive: Skip search index update if no new messages added.

===========================================================================
2002/02/14: v0.1.2

* Added new program 'mh-month-pack' that can process MH/nmh folders
  and copy messages into monthly-based mailbox files.  Although this
  program is not used by default by MHArc archiving system, it can
  be used to customize MHArc to work with MH/nmh-based setups.

* Updated web-archive to only call namazu once on all archive
  folders changed for a list instead of calling it for each archive
  folder processed.  Also added a cleanup check on namazu to make
  sure it does not leave a stale lock around.

===========================================================================
2002/02/11: v0.1.1

* BUG FIX: Fixed regex generation bug in mk-procmailrc where ()'s
  were not matched.

===========================================================================
2002/02/11: v0.1.0

First tagged release of mharc.  Code imported into CVS from the RCS
files used previously.  The following changes exist in this release:

* Mailing list definition file can now be specified in lib/config.sh.

* BUG FIX: Fixed bug in mk-procmailrc that created duplicate
  recipies for lists defined with multiple addresses.

* The Description: option in lists.def is now used as the title
  for archive index pages.

* Added No-Raw-Link: boolean option in lists.def.  It can be used
  to specify that a links to the raw archive data should not be
  made in the main period index of a list archive.

* Added new variable $LIST-DESC$ for .PNM.head and .PNM.foot
  process for main period index generation.  The variable will
  expand to the Description: value in lists.def.  If no
  description available, it will expand to the list name.

* read-mail will source .env.sh in same directory if it exists.
  It is an easy way to sent envariables needed for the archiving
  process to run properly.

* Modified distribution bundle creation to fit in with internal
  project release process.

===========================================================================
2002/03/08:

  Initial release.

===========================================================================
$Id: NEWS,v 1.34 2002/09/05 04:21:21 ehood Exp $
