Elm ME+ 2.5 PLalpha49 DEB announcement

Experimental DEB generator script for Elm ME+ 2.5 PLalpha49
exists on <URL: http://www.elmme-mailer.org/deb/elm-ME+2.5.html > 
directory.

Files are following

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.gen_deb
    DEB generator script
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.gen_deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.gen_deb.sig

A command

    elm-ME+2.5.alpha49-2.gen_deb  {packager}

generates package elmme with version 1.1.49-2.{distribution}.

A command

    elm-ME+2.5.alpha49-2.gen_deb --nonew  {packager}

generates package elm with version ME+2.5.alpha49-2.{distribution}.

Both commands produce package with filename
elm-ME+2.5.alpha49-2.{distribution}.{arch}.deb.

Module libelmme-resolv.so is included for all distributions below, but
libelmme-resolv.so does not implement interruptible DNS queries on all
distributions.

== Old package names, i386

Package elm with version ME+2.5.alpha49-2.{distribution} and
architecture i386.

* Compiled on Debian GNU/Linux 3.1
  (Linux 2.4, glibc 2.3, Exim 3.36)

  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Debian3.1.i386.deb
    Package elm binary DEB build on Debian GNU/Linux 3.1
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Debian3.1.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Debian3.1.i386.deb.sig

* Compiled on Ubuntu 6.06.2 LTS
  (Linux 2.6, glibc 2.3, Sendmail 8.13)

  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu6.06.i386.deb
    Package elm binary DEB build on Ubuntu 6.06.2 LTS
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu6.06.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu6.06.i386.deb.sig

* Compiled on Ubuntu 10.04.4 LTS
  (Linux 2.6, glibc 2.11, Sendmail 8.14)

  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb
    Package elm binary DEB build on Ubuntu 10.04.4 LTS
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb.sig

== New package names, i386

Package elmme with version 1.1.49-2.{distribution} and architecture
i386.

* Compiled on Ubuntu 10.04.4 LTS
  (Linux 2.6, glibc 2.11, Sendmail 8.14)

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb
    Package elmme binary DEB build on Ubuntu 10.04.4 LTS
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu10.04.i386.deb.sig

* Compiled on Ubuntu 14.04.5 LTS
  (Linux 4.4, glibc 2.19, no MTA)

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu14.04.i386.deb
    Package elmme binary DEB build on Ubuntu 14.04.5 LTS
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu14.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu14.04.i386.deb.sig

* Compiled on Ubuntu 16.04.5 LTS
  (Linux 4.4, glibc 2.23, no MTA)

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.i386.deb
    Package elmme binary DEB build on Ubuntu 16.04.5 LTS
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.i386.deb.sig

== New package names, amd64 (x86_64)

Package elmme with version 1.1.49-2.{distribution} and architecture
amd64 (also known as x86_64).

* Compiled on Ubuntu 16.04.5 LTS
  (Linux 4.4, glibc 2.23, Sendmail 8.15)

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.amd64.deb
    Package elmme binary DEB build on Ubuntu 16.04.5 LTS
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.amd64.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha49-2.Ubuntu16.04.amd64.deb.sig

== Signatures

{file}.sig                  PGP signature (old key pubkey.asc,      EA5A2379 1996-04-23)
{file}.elm-key-2018.sig     GPG signature (key elm.key.2018.asc,    44FC796B 2018-12-01, expires: 2028-11-28)

== Configuration

Following files (if exists) are rewritten by elmconfwriter on
installation:

  - /usr/local/lib/elm.rc
  - /usr/local/lib/elm.mimecharsets
  - /usr/local/lib/elm.mimetypes
  - /usr/local/lib/elm.terminalinfo
  - /usr/local/lib/elm.iso2022sets
  - /usr/local/lib/elm.mailservices
  - /usr/local/lib/elm.aliases
  - /usr/local/lib/elm.mailinglists
  - /usr/local/lib/elm.hashmarks 

 Deb generator script compiles elm for binary distribution, so you must
 edit /usr/local/lib/elm.rc before using Elm ME+ 2.5. Following
 variables may need to be modified on elm.rc:

  - mailer
  - hostdomain (this is usually needed)
  - hostfullname
  - hostname (usually this is not needed)
  - mailname (default values is generated from other values)
  - name-resolution (controls default values of hostdomain,
    hostfullname, hostname, mailname)

By default first value for mailname is read from /etc/mailname file.

For re-generation of following file, old information (if exists) is
used:

  - /usr/local/lib/elm.rc 

WARNING: Check after installation that libraries are enabled. Global
elm.rc values are:

use-library =
use-base-library = iconv
use-config-library = resolv
use-connect-library = tls resolv
use-mailer-library = smtp resolv

After editing global elm.rc run /usr/local/lib/elmrc-write -GI for
fixing possible errors.

On installation following existing files are merged with new values:

  - /usr/local/lib/elm.terminalinfo
  - /usr/local/lib/elm.mimetypes
  - /usr/local/lib/elm.mimecharsets
  - /usr/local/lib/elm.mailservices
  - /usr/local/lib/elm.mailinglists
  - /usr/local/lib/elm.aliases
  - /usr/local/lib/elm.iso2022sets
  - /usr/local/lib/elm.hashmarks 

Old values from /usr/local/lib/aliases.text are converted to
/usr/local/lib/elm.aliases and /usr/local/lib/aliases.text is renamed to
/usr/local/lib/aliases.text.OLD.

On installation new values without merging are written to following
files:

  - /usr/local/lib/elm.aliases.NEW
  - /usr/local/lib/elm.mailinglists.NEW
  - /usr/local/lib/elm.mailservices.NEW
  - /usr/local/lib/elm.mimecharsets.NEW
  - /usr/local/lib/elm.mimetypes.NEW
  - /usr/local/lib/elm.terminalinfo.NEW
  - /usr/local/lib/elm.iso2022sets.NEW
  - /usr/local/lib/elm.hashmarks.NEW 

Also following directories are used:

  - /usr/local/lib/elm.map.txt/ (global setting map-text-dir =
    {lib}/elm.map.txt)
  - /usr/local/lib/elm.map.bin/ (global setting map-bin-dir =
    {lib}/elm.map.bin)
  - /usr/local/lib/elm.user.map/ (global setting user-map-dir =
    {lib}/elm.user.map) 

Hashmark EXAMPLE uses file /usr/local/lib/elm.user.map/elm.usermap. 

A command

     elm-{version}-{release}.gen_deb {packager}

generates package elmme with version
{library-version}-{release}.{distribution}.  Note that a resulted
filename of package is still elm-{version}-{release}.{arch}.deb.  This
version number is same than on files
/usr/local/lib/libelmme-{module}.so.{library-version}.  A filename of
package is related to used source archive name, which is
elm-{version}-{release}.tar.gz.

A command

     elm-{version}-{release}.gen_deb --nonew {packager}

generates package elm with version {version}-{release}.{distribution}.
Also on this case a resulted filename of package is
elm-{version}-{release}.{arch}.deb.

SUMMARY: This release changes date display on
         mail listing and adds separator lines
         to mail listing. Also this release changes
         Expires: and Sender: -header field
         generation. This release checks more
         email addresses for mail domain
         validity (when libelmme-resolv.so module
         is used). New elmrc options are
         "expires-have-time", "mail-menu-time",
         "verify-alias-domain" and "verify-local-domain".
         Also some other changes and some bug
         fixes are included.

Elm ME+ 2.5 PLalpha49 changelog

Changes on Elm ME+ 2.5 PLalpha49 compared with Elm ME+ 2.5 PLalpha48
--------------------------------------------------------------------

        SUMMARY: This release changes date display on
                 mail listing and adds separator lines
                 to mail listing. Also this release changes
                 Expires: and Sender: -header field
                 generation. This release checks more
                 email addresses for mail domain
                 validity (when libelmme-resolv.so module
                 is used). New elmrc options are
                 "expires-have-time", "mail-menu-time",
                 "verify-alias-domain" and "verify-local-domain".
                 Also some other changes and some bug
                 fixes are included.

        * Change from Elm 2.5

          - Changed make_menu_date() to generate
            Elm 2.5 style local specific date
            (uses strftime).
          - Changed days_ahead[_tm]() to use Elm 2.5
            style algorithm where localtime()
            is used first and then day is
            incremented on instead of
            Elm 2.4  style algorithm where
            time_t values is incremented
            by days  * 24 * 60 *60 and
            localtime() is used.   
          - Changed  days_ahead[_text]() to generate
            Elm 2.5 style local specific date
            (uses strftime) for hdrconfig. This
            is not used for actual Expires:
            header. However %Y (year with century)
            is used instead of %y (year with 2
            digits).
         -  Changed elm_date_str() to generate
            Elm 2.5 style local specific date
            (uses strftime) for pager and
            phrase of in-reply-to (if
            "add-in-reply-to-phrase" is set). However
            %Y (year with century) is used
            instead of %y (year with 2 digits).

        - Added year to mail listing. This is controlled
          with new elmrc option "mail-menu-time". Year is
          included on separator line.
        - New elmrc option "mail-menu-time" knows following keywords
                none                    None of values are selected
                year-separator          Show separator line with
                                        year on date -column.
                auto-separator          Show separator line for
                                        some sorting orders when
                                        message list space is sufficient
                                        big (21 lines).
                today                   Show time as hh:mm on date
                                        column instead of date if
                                        date is today and timezone
                                        is same. Also shows separator
                                        with "today" if separator
                                        lines are shown.
                today-separator         Show separator line for
                                        some sorting orders when
                                        message list space is sufficient
                                        big (6 lines). Also show separator
                                        when all messages are from
                                        current year.
                year-or-time            Add either year or time as hh:mm
                                        on date column when date is shown.
                                        Time is shown when year is current and
                                        timezone is same. 
          These options also accepts additive form where 
          changes from compile time default (or changes from 
          global elm.rc) are listed:                    
                 +year-separator    -year-separator
                 +auto-separator    -auto-separator
                 +today             -today
                 +today-separator   -today-separator
                 +year-or-time      -year-or-time
        - Separator line is not shown if all mail are from
          current year. In that case that does not add
          much information and just consumes one line from
          mail listing. Keyword "today-separator" is
          exception for this.
        - Keyword "auto-separator" on elmrc option "mail-menu-time"
          enables separator lines when sorting order is
          "sent", "received" or "mailbox". Or when sorting
          order is "reverse-" version of these. There must
          be at least 21 lines available for mail listing.
        - Keyword "today"  on elmrc option "mail-menu-time"
          causes that sent time on form hh:mm is shown
          on date -column on mail listing if day, month and
          year is same as today date and timezone offset is same
          than on local timezone. Note that date column
          shows sending date on sender's timezone which
          may be different than local timezone.
        - Keyword "today" together with "year-separator"
          or "auto-separator" on elmrc option "mail-menu-time"
          causes that separator line with "today"
          on date -column. Mails are considered to
          be sent today if  day, month and
          year is same as today date or sent time
          is between of local today date start and
          end.
        - Keyword "today-separator" on elmrc option "mail-menu-time"
          enables separator lines when sorting order is
          "sent", "received" or "mailbox". Or when sorting
          order is "reverse-" version of these. This
          keyword causes that separator line with "today"
          on date -column is used. If there is at least
          one mail which is considered to be send today,
          separators are send even when all mails are from
          current year. There must be at least 6 lines
          available for mail listing.
        - Keyword "year-or-time" on elmrc option
          "mail-menu-time" adds year or time after
          message date to date -column on mail listing.
          Time is added if year is same as on today date
          and timezone offset is same than on local timezone.
          Otherwise year of message is added to date column.
          If time of message is added because of "today"
          keyword, keyword "year-or-time" adds nothing
          to date column.
        - Keywords "auto-separator" and "today" are
          default values for "mail-menu-time".
          Separator lines is not shown if all mails
          are from current year.
        > Keyword "year-or-time" on elmrc option
          "mail-menu-time" may work better if
          "today" is disabled and keyword
           "today-separator" is used instead.
          That is:
               mail-menu-time = -today +year-or-time +today-separator
          
        - Added menu_header_change_page() to lib/screen/header.c
        - Changed prototype of new_menu_header() 

        - Added hdr_line_separator_index(), hdr_show_separator(),
          hdr_init_separators(), hdr_setup_line()
          and hdr_setup_init() to src/screen.c
        - Added mcommon_init_separators(), mcommon_separator_count(),
          mcommon_screen_print_sep_line(), mcommon_get_separator_index(),
          mcommon_screen_setup_menu_init() and
          mcommon_screen_setup_menu_line()
          to src/menu_common/mcommon.c
        - Added give_menu_separator(), menu_separator_count(),
          menu_separator_init(), get_menu_separator_index(),
          get_today_info(), message_hdr_setup_init() and
          message_hdr_setup_line() 
          to src/messages/messages.c
        - Changed prototype of build_alias_line()
        - Changed prototype of make_menu_date()
        - Required width for mail number and
          date columns are calculated before printing
          of mail list.
          
        - Also changed Elm 2.5 browser to use
          these header setup init/line routines
          to calculate width for date column.
        - Replaced fbrowser_mp_cur_page menu_param
          with cur_page on struct menu_anon_param.
        - Replaced fbrowser_mp_headers_per_page
          menu_param with headers_per_page
          on struct menu_anon_param.
        - Replaced fbrowser_mp_options menu_param
          with options on struct menu_anon_param.
        - Replaced fbrowser_mp_tlen menu_param
          with time_len on struct menu_anon_param.
        - Replaced fbrowser_mp_comcol menu_param
          with comment_column on struct menu_anon_param.

        - Added Configure test for mktime()

        * Tried check that gmtime() and localtime()
          returns non-NULL result. These can fail if
          time_t is 64-bit and values does not fit
          to struct tm for example.
        - Added some fixes to src/date.c
        - Added some fixes to lib/get_tz.c
        - Added some fixes to lib/getarpdate.c
        - Added some fixes to src/thread.c
        - Added some fixes to src/elm.c
        - Added some fixes to lib/mbox/imap.c

        - Some changes to lib/strftime.c

        - Changed parse_date_time() so it detect if
          time_t overflows.
        - Changed make_gmttime() return LONG_MAX
          (or LONG_MIN) on overflow
        - Changed parse_date_time() to return
          *time_result as time_MAX on overflow or
          *time_result as 0 if result is negative
          (before year 1970).
        - Changed prototype of parse_date_time()
        - If parse_date_time() detects overflow
          (or negative (before year 1970) result)
          only year is printed on date -column on 
          mail listing.
        - If time_sent is stored as time_MAX or
          0 then just stored year is used for sent
          time sorting.
        - Also only year is printed on
          on date -column thread view if there
          was overflow (or negative (before year
          1970) result) on some mails of thread.

        - Small fix to compare_thread() on src/sort.c

        - Moved most of days_ahead() on src/date.c
          to days_ahead_tm() on lib/addr/date.c
        - Moved days_ahead() as textual output
          for hdrconfig to days_ahead_text().
          This part uses strftime as on Elm 2.5.
        - Moved Elm 2.4 style formatting of
          days_ahead() to days_ahead_hdrval()
          on lib/addr/date.c

        - Added write_expires_header() to lib/addr/write_hdr.c
        - Added lib/addr/outexpires.c with new_expanded_expires(),
          free_expanded_expire(), get_expanded_expires_textual(),
          set_expanded_expires_textual(),
          get_expanded_expires_value(), get_expanded_expires_days_ahead(),
          get_expanded_expires_print_time(),
          get_expanded_expires_cached_time()
        - Changed static struct header_info header_types[]
          on lib/addr/headers.c so that Expires: is also
          allowed on .elm/elmheaders (although that is not very
          useful).
        > If Expires: -header on .elm/elmheaders includes time,
          time is included to Expires: -header on outgoing mail.
          Note however that time zone is not correctly handled
          and mostly ignored.     
        - Moved part of parse_date_time() from lib/mbox/parsarpdat.c  
          to new parse_parts_date_time()
          on lib/addr/parsarpdat.c  
        - Moved lib/mbox/getword.c to lib/addr/getword.c
        - If new elmrc option "expires-have-time" have set, then
          time is included to Expires: -header on outgoing mail
          when header is generated from  Message Header Edit Screen.
          
        - Added overflow checking to aton()

        - Changed prototype (including return type) of elm_date_str()

        - Changed thread view to generate
          local specific date (uses strftime).
        - Required width for thread number
          and date columns are calculated
          before printing of thread list.

        - Possible fix for sort_threads()
          and correspond change for ViewThreads()
          on src/thread.c

        - Added useful_mailname() to lib/addr/split_addr.c
        - If interface addresses are added to "mailname" 
          global elm.rc option and they are only names
          added, then add "(none)" as first value
          of "mailname" global elm.rc option.
        - If first value of "mailname" global elm.rc option
          is "(none)" or does not include '.' then use
          "hostfullname" elmrc option when sending mail.

        - Small fix for smtp_run_ehlo()

        - Added MI_REMOTE_MAILER to enum MI_query for
          query_mailer_info()
        - Added same_SOCKADDR_ptr() to lib/remobe_mbx.c
        - Added elmrc option "verify-local-domain".
          Values are:
                 no                     Do not verify mail domain
                                        given on "mailname" or
                                        "hostfullname" when sending
                                        mail.
                 yes                    Use "verify-domain" setting
                                        for mail domain given on "mailname"
                                        or "hostfullname" when sending
                                        mail.
                 if-remote-mailer       Use "verify-domain" setting
                                        for mail domain given on "mailname"
                                        or "hostfullname" when sending
                                        mail if mailer is remote
                                        (mailer=submission and "server" is
                                         not local).
          Also boolean ON, OFF, TRUE, FALSE, YES and NO values are allowed
          on elmrc option  "verify-local-domain".
        - Keyword "if-remote-mailer" is default value for
          "verify-local-domain". Therefore local domain (as given
          on "mailname" elmrc option) is verified with
          "verify-domain" setting setting when "mailer"
          global elm.rc option have value "submission" (and
          "server" is set to something other than local host).
        - Added elmrc option "verify-alias-domain". If this is
          set (default), then also domain of alias expanded
          address is verified (uses "verify-domain" setting).

        - "special-use-domains-blacklist" elmrc option also
           applies to autofilled  "mailname" / "hostfullname" and these
           case local recipient is not allowed (unless
           "valid-domains" elmrc option overrides this).
        - "special-use-domains-blacklist" elmrc option also
           applies to domain of alias expanded address
            (unless "valid-domains" elmrc option overrides this).

        - Changed prototype of get_alias_address_expanded(),
          aliases_expand_alias(), alias_stack_lookup_f(),
          alias_simple_lookup(), lookup_local(),
          lookup_dummy()

        - Moved some code of build_address_l() to separate functions.
        - build_address_l() no longer return 1 (indicating
          alias expansion), when local address is handled.
          This fixes -c (check alias) output so that
          that "elm -c {userid}" does not claim successful
          alias expansion.
        - Small change to clear_error() and do_check_only()
        - Added build_address_classify_domain(),
          build_address_classify_message(),
          build_address_is_local() and need_verify_ldomain()
          to src/addr_util.c
        - Also exported build_address_cancel_mode() and
          verify_mail_domain_util() from src/addr_util.c

        - Changed return type of mailer_restarted()
          to enum restart_mailer_status.
        - Changed return type of mailer_info_verify_addr()
          to enum mi_vrfyaddr_mailer_status.

        - Changed envelope sender handling on submission mailer.
        - Added mailer_env_from_verified(),
          mailer_env_from_domain(), and
          mailer_env_from_angleaddr()
          to lib/mailer/mailer.c
        - Renamed env_from_changed() to mailer_env_from_changed()
          on lib/mailer/mailer.c
        - Changed prototype of mailer_info_set_ef()
        - Show Return-Path (envelope sender) on
          "Mail Pre-Send Screen" even when
          userlevel = beginner if it is changed
          (for example via ~/.elm/elmheaders).
        - Changed prototype of mailer_env_from_change()
        - Changed mailer_env_from_change() on lib/mailer/mailer.c
        - "special-use-domains-blacklist" elmrc option also
          applies to domain of envelope sender address (shown as
          Return-Path: -header; unless submission mailer is
          returned 250 for VRFY of that address or unless
          "valid-domains" elmrc option overrides this). In
          that case envelope sender address is changed to
          null address (<>).
         NOTE: "special-use-domains-blacklist" elmrc option does
               not prevent using of mailer option verify=yes
               option for envelope sender address.
        - "verify-domain" and "verify-local-domain" elmrc
          options also applies to domain of envelope sender
          address (shown as Return-Path: -header; unless
          submission mailer is returned 250 for VRFY of
          that address or unless "valid-domains" elmrc option
          overrides this).
        > If NULL MX is returned, envelope sender address is changed to
          null address (<>).
         RFC 7505: "Null MX" No Service Resource Record 
                   for Domains That Accept No Mail
        > If domain does not found, just message is given (but
          envelope sender address is not changed). If submission
          mailer is used sending mail probably fails later
          when domain of envelope sender address does not found.
        - If there is errors on envelope sender (also known as
          Return-Path) and 'allow-set-sender=yes' is set on
          "mailer" global elm.rc option, then prompt on
          "Mail Pre-Send Screen" defaults to R)eturn-path command.

        - Also b)ounce -command checks envelope sender.
        - Added rp_classify_domain_message() and
          env_from_classify_domain(), prompt_mailmsg_page_interactive(),
          mail_env_from_presend(), mail_show_env_from(),
          mail_env_from_def_edit(), mail_edit_return_path()
          to src/mailmsg2.c
        - Changed remail() on src/remail.c
        - Changed import_mailheaders() on lib/addr/outheaders.c
        - Changed show_presend_headers(), presend_action()
        - Added "Bounce Pre-Send Screen" to b)ounce command.
          This is used, when there is Return-Path set or
          editable. This is similar than "Mail Pre-Send Screen"
          on m)ail command.
        - Added error message in for case where
          importing .elm/elmheaders header field fails.
        - If header field name on .elm/elmheaders
          start with '#', it is ignored. Also
          `backticked` command on .elm/elmheaders
          is not executed in that case.
          Output of `backticked` command is not
          checked for '#' character on header field name.
        - Added check that addresses with domain given on
          "special-use-domains-blacklist" elmrc option
          are dot imported (unless "valid-domains" elmrc
          option overrides this). If there is blacklisted
          domain on "From:", "To:", "Cc:" "Bcc:" or
          "Reply-To:" -header field, whole .elm/elmheaders
          line is ignored and error message is given.     
        
        - Changed add_from_hdr(), add_to_hdr(),
          add_cc_hdr(), add_bcc_hdr(),
          add_replyto_hdr(), add_env_from_hdr()
          on lib/addr/outheaders.c

        - Moved addr_is_user() from lib/okay_addr.c
          to lib/addr/okay_addr.c
        - Moved split_internet_address() from lib/okay_addr.c
          to lib/addr/split_addr.c
        - Moved clear_split_addr() from lib/okay_addr.c
          to lib/addr/split_addr.c
        - Moved match_splitted_addr() from lib/okay_addr.c
          to lib/addr/split_addr.c
        - Moved match_local_addr() from lib/okay_addr.c
          to lib/addr/split_addr.c 

        - Changed that shared_libs/resolv/resolvertest2.c
          returns 3 when connection is refused
          (errno == ECONNREFUSED) and not only on
          timeout (errno == ETIMEDOUT).

        - Changed ConfTool/Makefile
        - Changed lib/mailer/Makefile.SH
        - Changed lib/Makefile.SH
        - Changed shared_libs/tls/Makefile.SH
        - Changed shared_libs/smtp/Makefile.SH
        - Changed shared_libs/resolv/Makefile.SH
        - Changed shared_libs/iconv/Makefile.SH
        - Changed utils/readmsg/Makefile.SH
        - Changed utils/Makefile.SH
        - Changed src/url/Makefile.SH
        - Changed src/messages/Makefile.SH
        - Changed src/command/Makefile.SH
        - Changed src/aliases/Makefile.SH
        - Changed src/list/Makefile.SH
        - Changed src/screen/Makefile.SH
        - Changed src/pager/Makefile.SH
        - Changed src/menu_common/Makefile.SH
        - Changed src/block/Makefile.SH
        - Changed src/Makefile.SH
        - Changed lib/addr/Makefile.SH
        - Changed lib/alias/Makefile.SH
        - Changed lib/mbox/Makefile.SH
        - Changed lib/misc/Makefile.SH
        - Changed melib/Makefile.SH
        - Changed nls/gencat/Makefile.SH
         
        - Fixed valgrind reported memory leak:
          294 bytes in 2 blocks are definitely lost in loss record 246 of 280
             at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
             by 0x5C3B0CC: safe_malloc (lib/safemalloc.c:60)
             by 0x52B5674: browser_local_do_stat_2 (lib/mbox/localmbx.c:603)
             by 0x52B6517: browser_local_do_stat_1 (lib/mbox/localmbx.c:875)
             by 0x52BBF16: fbrowser_give_entry (lib/mbox/localmbx.c:2931)
             by 0x467011: fbrowser_scan_directory (src/fbrowser.c:1243)
             by 0x467EAF: fbrowser (src/fbrowser.c:1628)
             by 0x469F7A: fbrowser_hook_enter (src/fbrowser.c:2508)
             by 0x44AD78: gen_browser (src/browser.c:3366)
             by 0x47BA63: arg_to_folder (src/init.c:182)
             by 0x47D70B: initialize_mailbox (src/init.c:928)
             by 0x484A39: main_messages_menu (src/mailbox.c:762)
        - Fixed valgrind reported memory leak:
          70 (24 direct, 46 indirect) bytes in 1 blocks are definitely lost in loss record 70 of 151
             at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
             by 0x5C3B1F8: safe_zero_alloc (safemalloc.c:85)
             by 0x5C76E4A: malloc_string (string.c:85)
             by 0x5C784CD: cat_strings_internal (string.c:553)
             by 0x5C80BF4: string_copy_character (string.c:3371)
             by 0x5780454: unquote_string (parsestring.c:596)
             by 0x531BBA7: hashtype_parse_kw_value_remote (hashmark_remote.c:1622)
             by 0x531076B: parse_hash_mark_entries (hashmark.c:1462)
             by 0x52AD5C1: hashmark_read_rc_file (init.c:147)
             by 0x5C29ABD: read_rc_file (read_rc.c:4918)
             by 0x47C58C: initialize (init.c:464)
             by 0x45E94B: main (elm.c:1221)
        - Fixed valgrind reported memory leak:
          42 bytes in 1 blocks are definitely lost in loss record 173 of 283
             at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
             by 0x5C3BA55: safe_strdup (lib/safemalloc.c:277)
             by 0x52C0A7D: mbx_init_spool (lib/mbox/localmbx.c:4561)
             by 0x52F71DD: real_folder_from_local (lib/mbox/common_local.c:295)
             by 0x52B9F6D: browser_folder_from_local (lib/mbox/localmbx.c:2137)
             by 0x52D8C70: folder_from_dir_item (lib/mbox/savefolder.c:5705)
             by 0x47C153: arg_to_folder (src/init.c:288)
             by 0x47DA29: initialize_mailbox (src/init.c:928)
             by 0x484D57: main_messages_menu (src/mailbox.c:762)
             by 0x45F546: main (src/elm.c:1489)

        - Fixed segmentation fault on start up when 
          certain interfaces are present. Specially
          allow ifa_addr pointer on struct ifaddrs to
          be NULL.
         Problem noted by: Jeffrey H. Johnson

        - Possible fix for mailer_get_env_from()

        - Changed global elm.rc option "add-sender"
          to type struct dt_enumerate_info.
          This option have values
                no              Add Sender: header only when there is
                                more than  one address on From: -header.
                yes             Add Sender: header also when user
                                specifies From: -header or user changes
                                changes envelope sender address (aka Return-Path).
                auto            If mailer is local or mail domain can
                                be verified (or verify is disabled), add 
                                Sender: header when user
                                specifies From: -header or user changes
                                changes envelope sender address (aka Return-Path).
          Value "auto" is default.  Also boolean ON, OFF, TRUE, FALSE, YES and NO
          values are allowed on global elm.rc option "add-sender".
          If there is more than one address on From: -header,
          Sender: -header is always added.
        NOTE: Value "auto" of elm.rc option "add-sender" also adds Sender:
              -header if DNS query fails (does not get positive or negative answer).
              Sender: header is not added if DNS query succeed and mail domain does
              not found (or if mail domain does not accept mail) and there is
              just one address on From: -header.
        - When elm.rc option "add-sender" have value of "auto", domain of
          Sender address may be rewritten.
        - If Sender: address uses domain from "special-use-domains-blacklist"
          elmrc option and  global elm.rc option "add-sender" causes Sender:
          header to be added, m)ail and other similar commands refuse
          to send mail (unless "valid-domains" elmrc option overrides this).
        - Changed prototype of from_addr_literal() and
          from_addr_literal1().
        - On some cases "self-cc" and "self-bcc" keyword
          on hashmarks file is not used if keyword
          uses domain from "special-use-domains-blacklist" elmrc option
          (unless "valid-domains" elmrc option overrides this).

        - If Sender: address for b)ounce command uses
          domain from "special-use-domains-blacklist" elmrc option,
          b)ounce command is refused (unless "valid-domains"
          elmrc option overrides this).

        - Moved "valid-domains" elmrc option from mailerlib
          to addrlib.

        - "However, a more serious problem is that as soon as there is a
           blank line before the first alias in the file, not a single alias
           is processed."  (on OLD .elm/aliases.text file)
         Problem noted by: Dirk Craeynest
        * Possibly fixed get_line() on lib/alias/oldaliases.c

        - Added small fix to "elm -h" text.
        - Added small fix to prompt menu text of Mail Preview Screen.

        - Changed make_from_addr() to check  "special-use-domains-blacklist"
          elmrc option (unless "valid-domains" elmrc option overrides this).
          make_from_addr() returns status of that check.
        - Changed prototype of make_from_addr().
        - Domain of make_from_addr() result is checked on
          m)ail and r)eply -commands  (and similar commands
          which use mail()) with  elmrc options "verify-local-domain"
          and "verify-domain" settings. If verify fails, confirmation is
          asked with "Continue send or preview message?" -prompt.
        - Added force_from_addr() to lib/mailer/outheaders.c
        - Changed add_commands_help_merge() on src/command/command.c

        - Added  fcntl(fd,F_SETFD,FD_CLOEXEC) calls to socket
          file descriptions created by socket() and socketpair().
        - Added pid to debug output.
        - Added clear_other_actions() to lib/schedule.c
        - Clear actions on subprocess at give_resolv_process()
          on shared_libs/resolv/query.c
        - Clear actions on subprocess at metapager()
          on src/metapager.c
        * Fixed error where IMAP (or POP) connection state
          was messed when external pager was used.
         Problem noted by: Dirk Craeynest
        - Changed change_action(), set_schedule_action() and
          clear_action() on lib/schedule.c
        - Replaced change_action() with change_action2()
        * Added badpid_action_f            * badpid_act
          to change_action.
        - Small fix for wait_for_something()
        - Added ConfigStream0(), ConfigStream2()
        - Added FreeStreamStack0(), FreeStreamStack2()
        - Added setup_actions0(), clear_action0()
        - Added clear_remote_account0()

        - Changed Metamail text of Configure.

        - "I should report that on OpenBSD, at least recent OpenBSD, 
          there is no sys/timeb.h include file."
         Problem noted by: Jeffrey H. Johnson
        > Elm ME+ have some
        
          #ifdef BSD_TYPE
          #   include <sys/timeb.h>
          #endif
          
          But <sys/timeb.h> gives only struct timeb
          on Linux and that is not used by Elm ME+.
          Function ftime() uses  struct timeb but
          that system call is not used. Removed

          #ifdef BSD_TYPE
          #   include <sys/timeb.h>
          #endif

          from Configure, src/date.c, src/elm.c

        - Added -I option to elmconfwriter -command.
          This is used together with -l to
          ignore missing shared libraries
          (given on use-library and use-*-library
           elmrc options) and some other missing
           data.
        - Changed prototype of init_addrlib(),
          init_aliaslib(), read_rc_file(),
          post_init_check(), parse_elmrc(),
          mailerfunc(), init_default_mailer(),
          init_mboxlib(), init_misclib(),
          do_rc_parse(), do_rc_process(),
          process_delayed_blocks(), delay_lib_reg(),
          do_set(), rc_eval_tail(), rc_eval_tail_cline(),
          rc_eval_tail_line(), expand_dt_path(),
          register_delayed(), null_option_func(),
          post_init_shared_options(), nameresfunc(),
          connect_mode_func(), query_mode_func()
        - Changed prototype of option_func(),
          rc_parse_line(), rc_parse_cline()
        - Changed expand_dt_path(),
          expand_map_bin(), read_rc_file(),
          delay_lib_reg(), process_lib_reg()


        New elmrc option:
            expires-have-time
            mail-menu-time
            verify-alias-domain
            verify-local-domain

        New files:
            lib/addr/outexpires.c
            lib/addr/date.c
            lib/addr/parsarpdat.c
            lib/addr/getword.c
            lib/addr/split_addr.c
            doc/DOCS
            
        Removed file:
            lib/mbox/getword.c

Warnings
-------- 

        - Not compiled with MMDF support defined, so probably it doesn't 
          work (or even compile).

        - This has not been tested much so there can be bad bugs. 

          Bug reports to: Kari E. Hurtta <elm@elmme-mailer.org>
                                     (was hurtta+elm@posti.FMI.FI)

        - Internationalized (ie. non-ASCII) domain names are not supported.

        - Support for multipart/signed and multipart/encrypted (specially: 
          support for PGP/MIME) only in reading side. There is no support 
          for attachments with multipart/encrypted.

        - HP's shoftkeys are no longer supported

        - DECNET addresses like host::user may be interpreted as phrase
          of group syntax or as route of source routed address.

        - Header editing screen now uses addresses in form phrase <address>, 
          but because it does not require using of comma (,), multiword 
          phrases must be entered in quotes. 

          For example:  "Kari Hurtta" <hurtta>

        - If address includes <> or comments (), they are not aliased 
          expanded. So aliases must be entered as bare words.

        - Addresses given as arguments to elm command should be given
          as one address per argument. Giving of sevaral addresses per 
          one argument causes that address is misparsed if header is 
          edited on header editing screen.

          That is:

                Use:    elm  '"Kari Hurtta" <hurtta>' 'Admin <root>'

          Don't use:    elm  'Kari Hurtta <hurtta>, Admin <root>'

        - p)rint command acts as P)rint text -command. So it
          is currently quite useless.
          p)rint command does that via readmsg -command. However
          P)rint text does actually same (without readmsg).

        - Some Linux libraries does not follow $LC_CTYPE when program is 
          setgid. Net result is that your locale is always C. That is 
          visible that $LC_CTYPE does not effect to locale printed by 
          'elm -vvvvv':

                Locale (LC_CTYPE):         C
                Display character-set:     US-ASCII
                Sending character-set:     US-ASCII

        - All refrences iso2022 maps are parsed and read to memory. 
          This may cause quite big memory consumption specially because 
          eastern (multibyte) sets tend to be lot of characters. That 
          mapping information should be shared between processes to 
          reduce memory consuption.

        - If display charset is produced by using mapping from locale 
          to charset where charset definition is later invalidated 
          ("removed") by setting explicit compatcharsets on user's 
          .elm/elmrc, that may  cause PANIC on elm's internal pager 
          or other problems. Invalidation happens if display charset 
          is on implicit compatcharsets list (because of charset 
          definition), but does not have explicit compatcharsets list 
          given by user. 

        - Neither Unicode didirectional algorithm nor Right-Left scripts 
          are supported.

        - In some situations two Status headers may be generated two 
          Status headers -- one by IMAP deamon and one from APPENDed 
          message.
                  
        - When APPENDing message to IMAP folder (which is normal UNIX 
          mailbox format) original "From " separator line can not be 
          preserved -- specially it is not possible to pass envelope 
          sender address.
  
        - For UTF-8 charset Elm only knows printable characters from 
          Latin/1 range, if unicode database (see elmrc option "unidata")
          is not loaded.

        - For using of ISO2022 character sets it is required that mapping 
          them to unicode is know -- otherwise Elm ME+ does not know which 
          characters are printable.

        - UTF-16 surrogate pairs (D800-DFFF) are not supported on UTF-7 
          charset.

        - Mixing of names using IMAP naming convention 
          (imap-naming-convention = yes)
          and names using imap-charset does not work very well...

        - "  Regarding my message (8 Aug 2000) regarding 'newmail' on 
           AIX 4.3.3 in an 'aixterm' window and the 'aixterm' did not 
          close, indeed the problem was NOT related to 'newmail' but an 
          AIX bug.

          IBM has release a patch, and the 'aixterm' in AIX 4.3.3 must
          be update with fileset X11.apps.aixterm.4.3.3.26 (PTF
          U473920) is solved to problem."
         From: Noam G. Nudelman  <noam@mail.biu.ac.il>

        - File /usr/share/locale/fi/charset gives charset name utf-8 on 
          Linux Mandrake 7.2. This causes that Configure generates 
          mapping
                fi      utf-8
          to elm.mimecharsets. However that seems to have
          incorrect mapping. You may want change this to
                fi      ISO-8859-1

          ( however nl_langinfo(CODESET) gives charset ISO-8859-15
            but look following entry. )

        - Locale 'fi' seems to have charset ISO-8859-15 according
          of nl_langinfo(CODESET)  on Mandrake Linux 7.2 (and probaly 
          others with same glibc version). However for example gnome 
          terminal uses font 
                -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-1
          and not
                -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-15

          Also KDE's konsole program seems use iso8859-1 character set
          although locale is 'fi' which should have ISO-8859-15 according
          of nl_langinfo (selecting "unicode" from menu seems fix that.)
         
          Because of mismatch more correct locale is fi_FI.88591, which gives
          ISO-8859-1 character set according of nl_langinfo(CODESET).

          ( Locale seems come from /etc/sysconfig/i18n or $HOME/.i18n )

        > To enable handling of ISO-8859-1 and ISO-8859-15 character sets
          on linux console, read comments from doc/terminal.info file.

        - Mandrake Linux 7.2 seems set LD_PRELOAD to load 
          /usr/lib/libxalflaunch.so.0. That (xalf-0.4-2mdk) causes that 
          elm to crash on startup (actually before main() is reached.)

        - kterm on Mandrake Linux 7.2 seems have (at least on my test
          environment) seems get bad fontlist (*VT100*fontList) which 
          gives bad font for iso8859-1 -- therefore ISO-8859-1 characters 
          do not work.
        
          ("xrdb -query" seems report resource with name "*fontList"
           -- that probably overrides "*VT100*fontList" which comes
           from /usr/lib/X11/app-defaults/KTerm )

        - Also note that initially kterm does NOT default to
          ISO-8859-1 -- therefore ISO-8859-1 works only when
          elm explicity switch to ISO-8859-1 (for example
          with 'elm -D ISO-8859-1')

        - When assembling message/partial MIME (RFC 2046) 
          requires that all headers except Content-*, Subject, 
          MIME-Version, Message-ID and Encrypted are copied from
          initial enclosing message to assembled message. It also 
          requires that headers except Content-*, Subject,
          MIME-Version,  Message-ID and Encrypted  are ignored and
          dropped from enclosed  message.

          For now we copy only Received: -headers. Dropping extra
          headers from enclosed message makes assembly more 
          complicated  (and dropping of Received: -headers
          from enclosed message do not make sense.)

        - EXIF files are sometimes labeled with content-type
          image/jpeg. They also use .jpg filename extension. They are
          not accepted by Elm ME+ as image/jpeg because magic number 
          (and format) is different. It is unclear what is correct
          treatment. According of specification EXIF files may
          wrap also other file types than jpeg (JFIF).

        - mailer=sendmail; verify=yes works only when sendmail 
          is installed as setuid root. Use mailer=submission instead.
        * Starting from sendmail 8.12 sendmail is normally
          installed as setgid smmsp and not as setuid root.
        - However error message is printed only if 
          verify-local-address=yes is also set

        - IMAP connection is stalled some times. Reason is unknown.

        - From name option (-f) on fastmail is currently broken.

Collector of these patches
--------------------------

        Kari Hurtta <elm@elmme-mailer.org>
        Kari Hurtta <hurtta+elm@siilo.FMI.FI>

-- 
/ Kari Hurtta
Advertisements