Elm ME+ 2.5 PLalpha50a DEB announcement

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

A command

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

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

A command

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

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

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

== New package names, i386

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

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

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

== New package names, amd64 (x86_64)

Package elmme with version 1.1.50.1-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.alpha50a-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.alpha50a-1.Ubuntu16.04.amd64.deb.elm-key-2018.sig
  - http://www.elmme-mailer.org/deb/elm-ME+2.5.alpha50a-1.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.

Elm ME+ 2.5 PLalpha50a changelog

Changes on Elm ME+ 2.5 PLalpha50a compared with Elm ME+ 2.5 PLalpha50
---------------------------------------------------------------------

        [ This patch is branch from the main line. ]

        SUMMARY: This patch fixes "frm", "newmail" and "readmsg"
	         -commands crash on startup when
		 prepare_read_folder() is called.

        - "newmail core dumps in elmME+.2.5.alpha50 on CentOS 7."
         Reported by: Noam G. Nudelman
        > Fixed crash on prepare_read_folder()
	  when called from "frm", "newmail" or
	  "readmsg".

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

        SUMMARY: This release adds new magic numbers for
                 JPG (EXIF), better reconnection handling
                 for broken IMAP connections and 'Er'
                 (reconnect) command. This release allows
                 interrupting stalled connection with
                 interrupt character (Ctrl-C) on new mail
                 check and 'X' (Quick Exit) command. Other
                 commands still are stuck if connection
                 is stalled. Also some other changes and
                 fixes are included.

        - Changed magic number of image/jpeg on
          lib/misc/mime_types.c

          RFC 2046 says: "An initial subtype is "jpeg" for the JPEG format
                          using JFIF encoding [JPEG]."

        > Also adds Digital camera JPG using
          Exchangeable Image File Format (EXIF) as
          image/jpeg.

        - Exported wday_from_year_month_day()
          from lib/addr/outheaders.c
        - Changed that lib/mbox/imap.c generates
          real weekday name to From -separator line
          (was using "XXX" as weekday name).

        - Changed mbx_copy_envelope_pop() to use
          return_path_to_env_from_1() for generating From
          -separator address as mbx_copy_envelope_imap()
          is using.

        - Changed screen update on read_headers()
        
        - Changed header allocation on read_headers()
        - Added malloc_header_rec() and free_header_rec()
          to src/messages/header_alloc.c
        
        - Fixed handling of mails which arrive to
          IMAP mailbox when mailbox is read (opened). 
        - Changed prototype of copy_envelope_end_folder(),
          mbx_copy_envelope_end_folder()
        - Changed parse_body_routine() on src/newmbox.c

        - If IMAP mailbox connection is broken,
          after reconnection different
          temp folder is used when mails
          are read from mailbox.
        * If different temp folder is used
          all mails are no longer included
          as new mails to mail listing with mails
          before connection was broken.
        - When POP connection is re$yncronized
          different temp folder is used.
          (POP mailbox also always reopen
           connection when mailbox is
           re$yncronized).               
        - If messages are EXPUNGEd from IMAP
          folder, different temp folder is used
          when mail is re$yncronized.
        - If skipped mail is later loaded
          from IMAP folder, different temp folder
          is used when mail is re$yncronized.

        - Added 'Er' command for reconnect broken
          mailbox connections.  
        - Added update_selected_counter(),
          found_disconnected(), ReconnectMailbox() and
          ReconnectMailboxPost() to src/reconnect.c

        - If IMAP / POP mailbox connection is
          broken, some hint from
             Use 'X' for Quick Exit
             XXX disconnected and failed. Use 'Er' for reconnecting or 'X' for Quick Exit
             XXX disconnected. Use 'Er' for reconnecting broken connection
             XXX failed. Use 'X' for Quick Exit      
          is given, where XXX is some from
             POP mailbox
             IMAP mailbox
             IMAP folder
             Read-only IMAP folder
        > However re$yncronize command may try reconnect
          IMAP or POP mailbox connection. 

        - Changed prototype of
          prepare_read_folder(), end_read_folder(),
          copy_envelope_folder(), sessionlock_folder(),
          open_folder_lock(), new_mail_check(),
          flush_folder()
          
        - Changed prototype of mbx_prepare_read_folder(),
          mbx_end_read_folder(), mbx_sessionlock_folder(),
          mbx_flush_folder(), mbx_flush_temp()
        - Added search_previous_header(),
          copy_previous_mail(), free_reconnect_mode(),
          malloc_reconnect_mode() to lib/mbox/mbox.c

        - Added
                unsigned int was_reconnected :1;
                unsigned int got_skipped_mail :1;
          to struct folder_info 
        - Added
                int uidvalidity;
                unsigned int got_EXPUNGE :1;
          to struct IMAP_MBX
          
        - Changed prototype of end_edit_folder()
        - Changed prototype of mbx_end_edit_folder()

        - Changed sync_mbox(), usr1_signal(), usr2_signal(),
          resync(), visit_mailbox_loop(), change_file()
        - Added reconnect_mails() to src/newmbox.c

        - Changed prototype of  newmbox_1()
        - Changed prototype of file_bytes()
        - Changed prototype of show_last_error()

        - Changed file_bytes() on lib/file_util.c

        - Fixed error message on check_mailfile_size()

        - Fixed error where re$yncronizing
          POP mailbox shows ridiculous
          large percents when loading mails.

        - Added sessionlock_create_tempfolder()
          to lib/mbox/mbox_generic.c
        - Added mbx_prepare_read_reconnect()
          to lib/mbox/remote_mbx.c
        - Changed mbx_sessionlock_pop(),
          mbx_sessionlock_spool(), mbx_sessionlock_imap()
        - Added mbx_comp_prev_hdr_folder(),
          mbx_update_prev_hdr_folder()
        - Added mbx_comp_prev_hdr_default(),
          mbx_update_prev_hdr_default () to
          lib/mbox/mbox_generic.c
        - Exported adjust_content_remaining from
          lib/mbox/localmbx.c
        - Added struct copy_previous_rs * reconnect_copy_previous
          to struct read_folder_state.
        - Changed copy_header_folder(),
          copy_body_folder(), copy_envelope_end_folder()
          on lib/mbox/mbox.c

        - Changed new_mail_on_folder(),  new_mail_check(),
          main_messages_loop()

        - Moved addr_is_same() from src/messages/duplicate.c
          to lib/addr/duplicate.c as addr_list_is_same()
        - Added message_id_to_string() to
          lib/addr/message-id.c
        - Added references_to_string() to
          lib/addr/references.c

        - Fix for debug_message() on src/elm.c

        - Message
             Checking new mail...
          is shown on new mail check after
          0.5 second delay when checking remote mailbox
          (IMAP mailbox). Check may be cancelable with 
          interrupt character (Ctrl-C) but remote
          mailbox connection may be disconnected.
        - Added start_imap_command_c(), imap_command_ok_c(),
          imap_clear_command_c() to lib/mbox/con_imap.c

        - Message
             Leaving mailbox ...
          is shown on eXiting main mailbox
          screen after 2 second delay if remote
          mailbox is stalled. Wait may be cancelable with 
          interrupt character (Ctrl-C).
        - Changed prototype of free_mailbox(), free_storage(),
          leave_old_folder(), close_folder(),
          close_connection(), free_connection(),
          free_mailbox(), free_all_mailboxes(),
          free_connection(), close_cached_connections()
        - Changed prototype of mbx_close_folder(),
          cache_close_connection(), mt_free_mailbox(),
          mbx_free_folder()

        - Take account artificial "From " separator line
          when estimating IMAP mailfile size (temp
          folder size). This affects percent display
          when reading mailbox.

        New files:
           lib/addr/duplicate.c
           src/reconnect.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.)

        - 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>
Advertisements