Elm ME+ 2.5 PLalpha52 DEB announcement

Experimental DEB generator script for Elm ME+ 2.5 PLalpha52
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.alpha52-1.gen_deb
    DEB generator script
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.gen_deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.gen_deb.sig



A command

    elm-ME+2.5.alpha52-1.gen_deb  {packager}

generates package elmme with version 1.1.52-1.{distribution}.

A command

    elm-ME+2.5.alpha52-1.gen_deb --nonew  {packager}

generates package elm with version ME+2.5.alpha52-1.{distribution}.

Both commands produce package with filename
elm-ME+2.5.alpha52-1.{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.alpha52-1.{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.alpha52-1.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.alpha52-1.Debian3.1.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha52-1.Debian3.1.i386.deb.sig

Module libelmme-resolv.so does not implement interruptible DNS queries
on Debian GNU/Linux 3.1.

* 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.alpha52-1.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.alpha52-1.Ubuntu6.06.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha52-1.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.alpha52-1.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.alpha52-1.Ubuntu10.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/old/elm-ME+2.5.alpha52-1.Ubuntu10.04.i386.deb.sig

== New package names, i386

Package elmme with version 1.1.52-1.{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.alpha52-1.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.alpha52-1.Ubuntu10.04.i386.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.Ubuntu10.04.i386.deb.sig

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

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

== New package names, amd64 (x86_64)

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

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

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

* Compiled on Ubuntu 18.04.4 LTS
  (Linux 5.3, glibc 2.27, no MTA)

  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.Ubuntu18.04.amd64.deb
    Package elmme binary DEB build on Ubuntu 18.04.4 LTS
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.Ubuntu18.04.amd64.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha52-1.Ubuntu18.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.     
  - /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 collects patch Elm ME+ 2.5 PLalpha51a,
         adds generation of "Message-ID:" -header field,
	 adds "Message-ID:", "Expires:", "Date:",
	 "In-reply-to:", and "References:" -header fields
	 to 'invoke e(d)itor' buffer on header editing screen
	 and adds --messages={file} and --transaction={file}
	 arguments to command line of elm. This release changes
	 pager date and time display on pager title line and
	 changes fastmail -command. This release adds TLS 1.1
	 and 1.2 alternatives to libelmme-tls module. New elmrc
	 options are "valid-msg-id-domains", "generate-message-id",
	 "pager-time-display" and "address-lookup". Also
	 added "default-tls-version" elmrc option to "tls:" section.
	 Also some other changes and fixes are included.

Elm ME+ 2.5 PLalpha52 changelog

Changes on Elm ME+ 2.5 PLalpha52 compared with Elm ME+ 2.5 PLalpha51 -------------------------------------------------------------------- Undo Elm ME+ 2.5 PLalpha51a patch before applying this patch. SUMMARY: This release collects patch Elm ME+ 2.5 PLalpha51a, adds generation of "Message-ID:" -header field, adds "Message-ID:", "Expires:", "Date:", "In-reply-to:", and "References:" -header fields to 'invoke e(d)itor' buffer on header editing screen and adds --messages={file} and --transaction={file} arguments to command line of elm. This release changes pager date and time display on pager title line and changes fastmail -command. This release adds TLS 1.1 and 1.2 alternatives to libelmme-tls module. New elmrc options are "valid-msg-id-domains", "generate-message-id", "pager-time-display" and "address-lookup". Also added "default-tls-version" elmrc option to "tls:" section. Also some other changes and fixes are included. - Changed Va_start() / va_end() usage on gen_browser() > This fixes crash on f)ilename command on Elm 2.5 style file browser: SIGNAL PANIC in signals.c:144:segv_signal >>> Segment Violation signal! Call stack: 7FBC6A31301E 4F108B 7FBC69AAACB0 7FBC69AFCDFA 7FBC6A30C337 continues: 44D2EE 4502A0 47372E 46470A 490DE5 continues: 4925FE 466D3A 7FBC69A95F45 41F1A9 backtrace: /usr/local/lib/libelmme-base.so.1.1.51(panic+0x1de)[0x7fbc6a31301e] elm(segv_signal+0x80)[0x4f108b] /lib/x86_64-linux-gnu/libc.so.6(+0x36cb0)[0x7fbc69aaacb0] /lib/x86_64-linux-gnu/libc.so.6(strlen+0x2a)[0x7fbc69afcdfa] /usr/local/lib/libelmme-base.so.1.1.51(elm_smessage+0x1025)[0x7fbc6a30c337] elm[0x44d2ee] elm(gen_browser+0x73b)[0x4502a0] elm(save+0x834)[0x47372e] elm(mailbox_command+0x1cae)[0x46470a] elm[0x490de5] elm(main_messages_menu+0x165)[0x4925fe] elm(main+0xf13)[0x466d3a] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fbc69a95f45] elm[0x41f1a9] Press a <enter> to abort or <enter> to exit: Crash occurs on x86_64 (amd64) architecture on Linux. Crash does not occur on i386 architecture on Linux. - Changed Va_start() / va_end() usage on folder_browser() - Added struct message_id * message_id; struct digest_proc * message_digest; struct expanded_date * date; to struct mailing_headers on hdrs/addrlib.h - Added write_msgid_header(), write_date_header() to lib/addr/write_hdr.c and hdrs/addrlib.h NOTE: A header fields Date: and Message-ID: are generated before "Mail Preview Screen" entered. Therefore Date: header field does not reflect mail sending time. A header fields Date: and Message-ID: are always same on "Mail Preview Screen", on sent mail and on saved copy. - Changed static struct header_info header_types[] on lib/addr/headers.c so that Message-ID: is also allowed on .elm/elmheaders (although that is not very useful) or on 'invoke e(d)itor' buffer on header editing screen. - Added Message-ID: to edit buffer used by 'invoke e(d)itor' on header editing screen. This is supported on static struct header_info header_types[] on lib/addr/headers.c. - Added is_whitelisted_msgid_domain() to to lib/addr/outheaders.h and to hdrs/addrlib.h - Added elmrc option "valid-msg-id-domains" to lib/addr/init.c - Added elmrc option "generate-message-id" to lib/mailer/init.c - Elm ME+ generates message-id header field when sending mail. This is controller by new elmrc option "generate-message-id". Message-id domain part is checked from DNS when use-mailer-library = smtp resolv is used. Id domain part of message-id header field is listed on new elmrc option "valid-msg-id-domains", then domain part is accepted without DNS check. See also chapter "Message-ID generation" - Configure now asks fall back domain name for message-id. msg-id.elmme-mailer.org is suggested. - Added check_domain_name() to shared_libs/resolv/resolv.c - Added "RSA Data Security, Inc. MD5 Message-Digest Algorithm" from RFC 1321: The MD5 Message-Digest Algorithm and modified that to work on 64-bit machine. Test suite on original code produces wrong hashes. - Possible fix to RC_fill_enum_values() on shared_libs/resolv/resolv.c - Possible fix to verify_mail_domain2() on shared_libs/resolv/resolv.c - Added macros DEBUG_CHECK_INIT() and DEBUG_CHECK() to hdrs/elmlib.h - Changed handling of valid-domains elmrc option. Even when some item on list starts with dot (.), name stated with dot (.) does not have accepted. When .domain is given on valid-domains elmrc option it marks {anything}.domain as valid domain, but {anything} can not be empty. - Moved message_id_domain() and message_id_left() from lib/addr/def_addr.h to hdrs/addrlib.h - Added free_digest_proc(), inc_digest_proc_refcount(), start_digest_proc(), feed_digest_proc(), len_digest_proc(), mode_digest_proc(), end_digest_proc(), result_digest_proc() digest_proc_equal(), malloc_digest_proc(), digest_type() to hdrs/elmlib.h and lib/digest_wrapper.c - Exported name_ok() from lib/service_list.c as host_name_ok(). - Changed mail() on src/mailmsg2.c - Added digest_feed_string() to hdrs/elmlib.h and lib/string.c - Added cs_digest_feed_from_string() to hdrs/cs_imp.h - Added digest_feed_str(), digest_feed_references(), digest_feed_message_id(), digest_feed_addrs(), digest_feed_expires_hdr() to hdrs/addrlib.h and lib/addr/digest.c - Added query_s_mailer_info() to hdrs/mailerlib.h and lib/mailer/mailer.c - Added mailer_info_s_query_hook() to hdrs/mailer_imp.h - Added Configure test for getsockname() - Added set_address_from_gen_helper2() to hdrs/connection_imp.h and lib/remote_mbx.c - Added local socket address (result of getsockaname()) to struct remote_account - local address (result of getsockaname()) is now included to transcript file (file given with -X option). - Submission mailer's check for MI_REMOTE_MAILER implementation for query_mailer_info() now also check that local and remote address of socket is same. - Added verify_library_prefix() to lib/shared.c and hdrs/shared_imp.h - Added shared_check_dname() and mailerdom_verify_lib_status() to lib/mailer/shared_mailer.c and hdrs/mailerlib.h - Added new_expanded_date(), free_expanded_date(), get_expanded_date_value(), get_expanded_date_cached_time(), get_expanded_date_source() to lib/addr/outdate.c and hdrs/addrlib.h - Added date_hdrval() to lib/addr/date.c and hdrs/addrlib.h - Added digest_feed_date_hdr() to lib/addr/digest.c and hdrs/addrlib.h - Added expanded_time_hdrval() to lib/addr/date.c and hdrs/addrlib.h - Changed add_expires_hdr() - Changed parsing of Expires: -header on .elm/elmheaders - Added Expires: to edit buffer used by 'invoke e(d)itor' on header editing screen. This is supported on static struct header_info header_types[] on lib/addr/headers.c. - Allow "x days" as value for Expires: -header on edit buffer. - Possible fix for expval_expires() - Added add_date_hdr() to lib/addr/outheaders.h - Changed static struct header_info header_types[] on lib/addr/headers.c so that Date: is also allowed on .elm/elmheaders (although that is not very useful). - Added Date: to edit buffer used by 'invoke e(d)itor' on header editing screen. This is supported on static struct header_info header_types[] on lib/addr/headers.c. - Fixed skipping of comments between headers on edit buffer used by 'invoke e(d)itor' on header editing screen. - Fix for parse_parts_date_time(), wday number was returned wrongly. - Avoid "Failed to leave folder: Try to quit again ? ([P]anic/y/n) n" when "Move read messages to "received" folder? (y/n)" is canceled with ctrl-C - Added to sync_mbox() return status sync_mbox_cancel (-4). - Changed sync_mbox() so that it does not call emergency_exit() when EOF is send from user input. - Added to sync_mbox() return status sync_mbox_EOF (-5). - Changed real_save() so that it does not call emergency_exit() when end_keep_folder() fails. Also real_save() does not close folder when end_keep_folder() fails. - Added --messages={file} argument to elm. This logs some messages (usually errors) shown. - Added open_messages_log(), close_messages_log() to hdrs/me.h and src/out_utils.c - Added --transaction={file} argument to elm. This is same than -X {file} option. - Added free_transaction_file() to hdrs/elmlib.h and lib/remote_mbx.c - free_transaction_file() is called from free_rc_options(). - Changed some time() calls. - Check on can_open() that userid and groupid have set. - Set close-on-exec flag on set_transaction_file() and init_debug(). - Avoid Failed to leave folder! and then Failed to leave folder: Try to quit again ? ([P]anic/y/n) n on closing/leaving folders when several folders are open and some of them are read only. If just read only folder was open that produced already Folder XXXXXX is read-only and unchanged. - Added "-X transcript/transaction file" parameter to fastmail. This is useful when mailer=submission is used. Same option is also on elm, newmail and frm (on these cases transcript/transaction file will include passwords). Currently mailer=submission does not support SMTP AUTH, so there is no passwords on transcript/transaction file on that case now. - Added Message-ID: -generation to fastmail. - Use DEFAULT_BATCH_SUBJECT also on fastmail. - Added write_common_mailing_headers() to lib/mailer/write_common.c and hdrs/mailerlib.h - Used that on elm's src/mailmsg2.c and on fastmail. Note: If nohdrencoding is set on elmrc, now also fastmail (as elm does) adds X-ELM-OSV: no-hdr-encoding=1 to outgoing mails. - Moved add_parameter() from src/mime_encode.c to lib/mailer/mime_encode.c - Added feed_common_mailing_headers() to lib/mailer/feed_common.c and hdrs/mailerlib.h - Used that on elm's src/mailmsg2.c and on fastmail - Added -H option to fastmail. If set, only Return-Path: -header field is read from ~/.elm/elmheaders file and other header fields are ignored. - Added similar generation of From: and Sender: header fields to fastmail than it is on elm -command. Global elm.rc option "add-sender" is now used also on fastmail. - Added sndhelper_get_sender(), sndhelper_handle_sender() to lib/mailer/senderhelper.c and hdrs/mailerlib.h - Used that on elm's src/mailmsg2.c and on fastmail - Moved build_address_classify_domain(), build_address_classify_message(), build_address_cancel_mode(), verify_mail_domain_util() from hdrs/me.h and src/addr_util.c to lib/mailer/senderhelper.c and hdrs/mailerlib.h - Changed static struct header_info header_types[] on lib/addr/headers.c so that In-reply-to: and References: are also allowed on .elm/elmheaders (although that is not very useful) or on 'invoke e(d)itor' buffer on header editing screen. - Added In-reply-to: and References: to 'invoke e(d)itor' buffer on header editing screen. This is supported on static struct header_info header_types[] on lib/addr/headers.c. - Moved print_edit_string(), add_addr_header(), add_string_header(), edit_headers_on_editor() from src/hdrconfg.h to src/edithdr.c - strftime() format specifier %r (The time in a.m. or p.m. notation) produces 12-hour clock without AM/PM notification on fi_FI.UTF-8 locale (also %p produces empty result). > Changed default to 24-hour clock (without seconds). - Added elmrc option "pager-time-display". Option have values legacy (same than month-day-year-12h) default (same than month-day-year-HH-MM) month-day-year-12h month day, Year 12h (am/pm) strftime %b %d, %Y %r month-day-year-24h month day, Year 24h strftime %b %d, %Y %T month-day-year-HH-MM month day, Year HH:MH strftime %b %d, %Y %R preferred Local preferred format strftime %c day-month-year-12h day month year 12h (am/pm) strftime %d %b %Y %r day-month-year-24h day month year 24h strftime %d %b %Y %T day-month-year-HH-MM day month year HH:MM strftime %d %b %Y %R YYYY-MM-DD-HH-MM numeric YYYY-MM-DD HH:MM YYYY-MM-DD-HH-MM-SS numeric YYYY-MM-DD HH:MM:SS Sender's timezone is appended to time. This option controls how pager show message date and time on title line (top line) when "titles" elmrc option have value ON (default). - If Date: is unparsable, pager no longer show dummy date and time on title line. - If Date: is parsable, but year is too early or year is too late (time_t overflows on 32-bit systems), pager shows text "year " and year number on place of date and time on title line (top line). - Replaced elm_date_str() with elm_date_text(). - elm_date_text() will report "year xxxx" if date value is unsupported or overflow, but year is available (from time_menu_year at struct header_rec) - Changed that setting add-in-reply-to-phrase does not use elm_date_str()'s or elm_date_text()'s strftime for phrase time used on in-reply-to reply header field. Result of that is locale dependent. Changed that this uses date: -header format on phrase (actually implemented via elm_date_text(), but not available as "pager-time-display" value). - Added give_name_from_sockaddr() to lib/service_list.c and hdrs/connection_imp.h - Added elmrc option "address-lookup". Possible values are: normal Currently same than "gethostbyaddr" gethostbyaddr Use getgostbyaddr() getnameinfo Use getnameinfo() This option specifies how translation from ip-address to hostname is done. Default value "normal" specifies that normal address -lookup API (that is gethostbyaddr()) is done. Both gethostbyaddr() and getnameinfo() works also with IPv6 (on Linux). getnameinfo() is newer interface, but it can return only one name. gethostbyaddr() may return several names. Seems that getnameinfo() returns first name from /etc/hosts even when this is not best choice. This is currently only used when "generate-message-id" have {domainspec} value "default" and "mailer" is "submission" and that connection is not local. - Added give_SOCKADDR_ptr_as_string() to lib/service_list.c and hdrs/connection_imp.h - Do not ask Can I test if your mailer supports DSN options: -N -R -V? on Configure if selected mailer is "none". - Changed Configure (actually shared_libs/tls/config) so that it detects also on Ubuntu 18.4 that OpenSSL is available on system directory. - OpenSSL seems not include RAND_egd_bytes() on Ubuntu 18.4. Now Configure (actually shared_libs/tls/config) tests that RAND_egd_bytes() can be linked. - libelmme-tls module only used SSLv23_client_method() and TLSv1_client_method(). Added Configure (actually shared_libs/tls/config) test that SSLv23_client_method() TLS_client_method() TLSv1_client_method() TLSv1_1_client_method() TLSv1_2_client_method() can be linked. - Changed prototype of create_TLS_stream() - Changed libelmme-tls module handle more protocol versions. - "tls:starttls-version" and "tls:tls-version" parameters of global elm.mailservices and user's ~/.elm/mail.services file now accepts new values: tls-1 TLS 1 protocol tls-1.1 TLS 1.1 protocol tls-1.2 TLS 1.2 protocol These "tls:starttls-version" and "tls:tls-version" parameters also accepts old values: none disables STLS or STARTTLS ssl SSL or TLS, semantic varies tls TLS, semantic varies (default) See details from shared_libs/tls/README.ME+ file. Default "tls" means that protocol TLS 1 is used or with OpenSSL 1.1 that protocol TLS 1 or newer is used. Value "ssl" probably means with OpenSSL 1.0 or older that SSL 2 client hello packet is used. NOTE: Configure (actually shared_libs/tls/config) disables by default TLSv1_client_method(), TLSv1_1_client_method(), and TLSv1_2_client_method() on Ubuntu 18.4 because them are deprecated. This assumes that compiler gives "is deprecated" message and user agrees disabling on Configure prompt. ( However SSLv23_client_method() seems not produce "is deprecated" message. ) - Added "default-tls-version" elmrc option to "tls:" section. This option accepts values: ssl SSL or TLS, semantic varies tls TLS, semantic varies (default) tls-1 TLS 1 protocol tls-1.1 TLS 1.1 protocol tls-1.2 TLS 1.2 protocol This is used, if "tls:starttls-version" and "tls:tls-version" parameters does not exists on global elm.mailservices or user's ~/.elm/mail.services file for particular host and service. - Changed that Configure puts UU directory to build-directory when -O option is used and not source directory when checking that package is complete - Added $dummydomain to Configure. This is used if Configure defaults to placeholder domain. That is '.localdomain'. - Added matches_dummy_domain() to lib/mailer/senderhelper.c and hdrs/mailerlib.h. That returns ".localdomain" if domain ends .localdomain and Configure or setup_names() selected that for placeholder domain. This is used for avoiding DNS lookup. New elmrc option: address-lookup generate-message-id valid-msg-id-domains pager-time-display tls:default-tls-version New files: lib/addr/md5_global.h lib/addr/md5.h lib/addr/md5c.c lib/addr/md5_wrapper.c lib/digest_wrapper.c hdrs/digest_imp.h lib/mailer/message-id.c lib/addr/digest.c lib/addr/outdate.c lib/mailer/write_common.c lib/mailer/feed_common.c lib/mailer/senderhelper.c src/edithdr.c shared_libs/tls/tlsconf.h.SH Message-ID generation --------------------- elm.rc option option "generate-message-id" tells how message-id should be generated for outgoing mail. Elm ME+ does not generate Message-ID header field if "generate-message-id" have value "none" or if Elm ME+ can't select "good" domain name to domain part (right side from '@') of message-id. Value of "generate-message-id" optios is either none Message-ID: -header field is not generated or value have form {localspec}@{domainspec}; {parameter}={value}... or {localspec}@domain.name; {parameter}={value}... {localspec} values includes: none Message-ID: -header field is not generated md5 Use 16 octets md5 hash value from message content for generating local part of message-id. /dev/urandom Use 16 octets from /dev/urandom for generating local part of message-id. /proc/sys/kernel/random/uuid Use content from /proc/sys/kernel/random/uuid as local part of message-id. Local part of message-id is generated from 16 octets same way on both md5 and /dev/urandom cases. Result includes 2 or 4 "words" which are separated by '.' characters (on 64-bit architecture result includes 2 "words" and 32-bit architecture result includes 4 shorter "words"). {domainspec} values includes: default Try following as domain part of message id 1) value of "hostfullname" elmrc option 2) mailer specific value (name of local address of connected socket on "submission" mailer, if connection is remote) 3) First value from "mailname" elmrc option hostfullname Try value of "hostfullname" elmrc option as domain part of message id maildomain Try first value from "mailname" elmrc option as domain part of message id 'domain.name' is any dns name which is tried as domain part of message id. This must include at least one dot ('.'). Without dot ('.') it is interpreted as {domainspec} keyword. {parameter} values includes: fallback-domain Overrides possible compile time default domain for domain part of message id default-cache-timeout Default timeout for cached results of dns check for domain part of message id. May include unit: "s" for seconds, "m" for minutes, "h" for hours or "d" for days. Without unit gives default cache timeout on seconds. check-domain Value "none" indicates that dns check is not done and "valid-msg-id-domains" elmrc option must be used. check-domain Value "shared" indicates that shared routine (resolv -module) is used for dns check. min-domain-labels Minimun number of domain labels (0-9) separated by '.' characters required for dns check. Value zero (0) disables counting of labels and rfc 822 special characters and whitespace are not checked. Note that '\.' does not count as label separator. With elmrc option use-mailer-library = resolv possible {parameter} value includes: check-domain Value "resolv" indicates that shared routine from resolv -module is used for dns check. {value} may be quoted string for "fallback-domain" and "check-domain". A domain part of message-id either must be listed on "valid-msg-id-domains" elmrc option or resolv -module must check that given dns name exists. If a domain part of message-id is listed "special-use-domains-blacklist", dns check is not done and domain part is not accepted. 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.) - 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. Collector of these patches -------------------------- Kari Hurtta <elm@elmme-mailer.org> Kari Hurtta <hurtta+elm@siilo.FMI.FI> -- / Kari Hurtta