ELM ME+ 2.5 PLalpha41 RPM announcement

Experimental RPM spec file for ELM ME+ 2.5 PLalpha41
exists on <URL: http://www.elmme-mailer.org/rpm/elm-ME+2.5.html >

I do not know rpm, so please do not blame me, if
I wipe your hardisk...

Files are following

  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.spec
    RPM spec file                                        [Note 1]
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.spec.elm-key-2013old.sig
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.spec.elm-key-2013.sig
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.spec.sig
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.fdr19.src.rpm
    Source rpm                                           [Note 2]  
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.fdr19.src.rpm.elm-key-2013old.sig
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.fdr19.src.rpm.sig

* Compiled on Linux Mandrake release 7.2
  (Linux 2.2, glibc 2.1, Sendmail 8.13)

  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.mdk7.2.i686.rpm
    Package elm binary RPM build on Linux Mandrake release 7.2      [Note 3, Note 4]
  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.mdk7.2.i686.rpm.sig
  - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha41-1.mdk7.2.i686.rpm
    Package elm-mod binary RPM build on Linux Mandrake release 7.2  [Note 3]
  - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha41-1.mdk7.2.i686.rpm.sig
  - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha41-1.mdk7.2.i686.rpm
    Package elm-tls binary RPM build on Linux Mandrake release 7.2  [Note 3, Note 5]
  - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha41-1.mdk7.2.i686.rpm.sig

* Compiled on Fedora release 19
  (Linux 3.14, glibc 2.17, Sendmail 8.14)

  - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha41-1.fdr19.i686.rpm
    Package elm binary RPM build on Fedora release 19               [Note 6]
  - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha41-1.fdr19.i686.rpm
  - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha41-1.fdr19.i686.rpm
    Package elm-mod binary RPM build on Fedora release 19           [Note 6]
  - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha41-1.fdr19.i686.rpm.sig
  - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha41-1.fdr19.i686.rpm
    Package elm-tls binary RPM build on Fedora release 19           [Note 6]
  - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha41-1.fdr19.i686.rpm.sig
  - http://www.elmme-mailer.org/rpm/elm-debuginfo-ME+2.5.alpha41-1.fdr19.i686.rpm
    Package elm-debuginfo binary RPM build on Fedora release 19     [Note 6, Note 7]
  - http://www.elmme-mailer.org/rpm/elm-debuginfo-ME+2.5.alpha41-1.fdr19.i686.rpm.sig

* Notes

Note 1:
  - rpmbuild elm-ME+2.5.alpha41-1.spec warns that "prereq is
    deprecated", but that is required on Linux Mandrake release 7.2
    where older rpm -package is build.

Note 2:
  - elm-ME+2.5.alpha41-1.fdr19.src.rpm is signed internally with GPG key
    elm.key.2013.asc (A54BE3BC 2013-10-20). 
Note 3:
  - elm-ME+2.5.alpha41-1.mdk7.2.i686.rpm and
    elm-*-ME+2.5.alpha41-1.mdk7.2.i686.rpm are signed internally with
    GPG key elm.key.2013old.asc (825FDF78 2013-10-26). 
Note 4:
  - elm-ME+2.5.alpha41-1.mdk7.2.i686.rpm is compiled agaist Sendmail
    8.13 (not from Mandrake distribution). 
Note 5:
  - elm-tls-ME+2.5.alpha40-1.mdk7.2.i686.rpm do not load/work on
    Mandrake 7.2, because openssl library misses RAND_egd_bytes
Note 6:
  - elm-ME+2.5.alpha41-1.fdr19.i686.rpm and
    elm-*-ME+2.5.alpha61-1.fdr19.i686.rpm are signed internally with GPG
    key elm.key.2013.asc (A54BE3BC 2013-10-20). 
Note 7:
  - elm-ME+2.5.alpha41-1.spec do not have %package debuginfo, but
    rpmbuild -ba elm-ME+2.5.alpha41-1.spec build
    elm-debuginfo-ME+2.5.alpha41-1.fdr19.i686.rpm anyway. 

* Signatures

{file}.sig                  PGP signature (old key pubkey.asc,      EA5A2379 1996-04-23)
{file}.elm-key-2013.sig     GPG signature (key elm.key.2013.asc,    A54BE3BC 2013-10-20, expires: 2018-10-19)
{file}.elm-key-2013old.sig  GPG signature (key elm.key.2013old.asc, 825FDF78 2013-10-26, expires: 2018-10-25)

* Installation

Package elm-mod includes libelmme-iconv.so and libelmme-smtp.so. And
package elm-tls includes libelmme-tls.so.

Package elm-mod compiled on Fedora release 19 includes

Installation loses mailer = submission setting from global
/usr/local/lib/elm.rc, because when elm package rewrites elm.rc,
submission mailer is not available. It becomes from elm-mod package.

However failed values of /usr/local/lib/elm.rc are saved to
/usr/local/lib/elm.rc.old-values file during installation.

Global setting mailer = submission is restored from
/usr/local/lib/elm.rc.old-values file, when package elm-mod is

* Configuration

Following files (if exists) are rewritten by elmconfwriter on

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

Spec file 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) 

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

  - /usr/local/lib/elm.rc 

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 

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

On installation new values without merging are written to following

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

SUMMARY: This release adds new memory allocation wrappers,
         compiles libelmme-resolv.so module on more Linux 
         distributions, makes IPv6 support more complete, 
         may use getaddrinfo(), getifaddrs() and 
         if_nameindex() -functions. New elmrc option 
         "ipv6-scope-id" is added and new values are added 
         to elmrc option "mail-services-lookup". This 
         release changes error handling on parsing of 
         headers. Then also some other changes and bug 
         fixes are included.

ELM ME+ 2.5 PLalpha41 changelog

Changes on Elm ME+ 2.5 PLalpha41 compared with Elm ME+ 2.5 PLalpha40

        SUMMARY: This release adds new memory allocation wrappers,
                 compiles libelmme-resolv.so module on more Linux 
                 distributions, makes IPv6 support more complete, 
                 may use getaddrinfo(), getifaddrs() and 
                 if_nameindex() -functions. New elmrc option 
                 "ipv6-scope-id" is added and new values are added 
                 to elmrc option "mail-services-lookup". This 
                 release changes error handling on parsing of 
                 headers. Then also some other changes and bug 
                 fixes are included.

        WARNING: There are some changes on nm usage so it may
                 cause that different set of symbols are found.
                 Please report possible problems.

        - metapager() did not display correctly a header
          whose unfolded length was 2560 characters or more.
          Raised that to 32k characters as it is on 

        - Added safe_calloc() as wrapper to calloc().
          That is similar to safe_malloc(). 
        - Changed len from unsigned to size_t on safe_*
          allocation functions
        - Fail if size < 1  on safe_*  allocation functions
        - Added safe_array_realloc() to lib/safemalloc.c
        - Added safe_zero_alloc() to lib/safemalloc.c

        - Possible fix for debug_print_buffer()

        - Added Configure test for <stdint.h>

        - On Red Hat Enterprise Linux Server release 5.6 (Tikanga)
          Configure test for resolv library fails with
                /tmp/ccOfeE26.o: In function `main':
                tryresolv.c:(.text+0x474): undefined reference to `__ns_initparse'
                tryresolv.c:(.text+0x605): undefined reference to `__ns_parserr'
                tryresolv.c:(.text+0x86f): undefined reference to `__ns_name_uncompress'
                tryresolv.c:(.text+0x902): undefined reference to `__ns_name_uncompress'
                tryresolv.c:(.text+0x9a0): undefined reference to `__ns_name_uncompress'
                tryresolv.c:(.text+0xbb4): undefined reference to `__ns_name_uncompress'
                tryresolv.c:(.text+0xc58): undefined reference to `__ns_name_uncompress'
                collect2: ld returned 1 exit status
        > Linked tryresolv with static libresolv.a

        - Added nls/C/C/C/s_iconv.m
        - Added nls/C/C/C/s_smtp.m
        - Added nls/C/C/C/s_tls.m

        - Changed struct smtp_callbacks on

        - Do not call flush_filter() with NULL
          ptr->filter_line on set_out_state_line_mode().
          Possible fix for crash.
        - Fix for add_se_alias_to_entry()
          on lib/service_list.c

        - If getaddrinfo() is available, use it for address lookup 
                mail-services-lookup = hostname
          was used on user's .elm/elmrc -file. This is default.
        - New value 
                mail-services-lookup = gethostbyname
          on user's .elm/elmrc -file specifies that 
          gethostbyname() should be used.
        - New value 
                mail-services-lookup = getaddrinfo
          on user's .elm/elmrc -file specifies that 
          getaddrinfo() should be used.
        * However gethostbyname() is still used to 
          initialize "hostdomain" and IPv4 addressed 
          returned are still used for default values of
          "mailname" elmrc variable. This does not
          use "mail-services-lookup" elmrc variable
          and getaddrinfo() is not used on here.
        - Configure tests if AI_ADDRCONFIG is usable
          with getaddrinfo()

        - Fix panic on connect_remote_account_1():
          "CONNECTION PANIC in remote_mbx.c:521:connect_remote_account_1
           >>>No data (ra_from)"
        - Fixed some wrong definitions on known
          headers array on lib/addr/headers.c 

        - Changed parse_header_address() on
          lib/addr/getaddrc.c so that missing ','
          after '>' is detected. Before that change
          components of two address was catenated.

        - Do not alloc zero length vector
          if add_name_to_string() is called
          with empty ascii string. add_ascii_to_string()
          uses actually add_name_to_string().

        - Added more wrapping of headers when they are printed
          to editor's buffer on src/hdrconfg.c

        - If getifaddrs() is available, Configure asks
          that should interface addresses added to "mailname" 
          global elm.rc variable. Interface "lo" is
          ignored when adding addresses to "mailname".
          Also IPv6 addresses with scope id are ignored.

        - Added get_interfaces(), update_interface_list(),
          set_SOCKADDR_from_data(), free_interface_list() ,
          same_SOCKADDR_ptr_generic() to lib/remote_mbx.c

        - Small fix to lookup_domain_name() on

        - If getifaddrs() is available and elmrc variable
          "query-address-type" (on resolv: -section on 
          user's .elm/elmrc -file) have value "default", 
          resolv -module uses interface address list to 
          determine if query A (IPv4) or AAAA (IPv6) records 
          need to be queried. Interface "lo" and IPv6 
          addresses with non-zero scope-id are ignored. 
          If only IPv4 addresses are seen then A (IPv4) 
          records are queried. If only IPv6 addresses are 
          seen then AAAA (IPv6) records are queried. Mail 
          domain verify queries both A (IPv4) or AAAA (IPv6) 
          records for query-address-type=default
          (when verify-domain=resolv:mx-address is used.)

        - Settings
                mail-services-lookup = shared
                mail-services-lookup = resolv:addresses
                mail-services-lookup = resolv:all-addresses
          caused that that command that IP-address
          an mailbox name as
             elm -f username@
          was not accepted on Fedora release 19 
          and Ubuntu 10.04.4 LTS. Changed  give_service_entry3()
          to ignore mail-services-lookup if literal
          IP address is given as argument.
        - Do not allow addr= on user's mail.services
          or global elm.mailservices file if
          name of entry matches to literal IP-address.

        - If if_nameindex is available, elmrc
                ipv6-scope-id = link-local-if-index
          can be used to tell that scope id's
          for link local IPv6-addresses are
          are interface indexes. This adds
          support for interface names as
          textual form of scope ids.
        * Scope id is part after % -character
          on numeric IPv6 -address.
        - Option
                ipv6-scope-id = auto
                ipv6-scope-id = link-local-if-index
          if numeric scope id's of link
          local addresses matches to interface
          index on where address is located.
        - Scope-ids for other type IPv6-addresses
          are still numeric with
              ipv6-scope-id = link-local-if-index
        - Configure asks is struct sockaddr_in6's 
          sin6_scope_id -field is always interface 
          index as given on if_nametoindex() and
          if_indextoname() for link local addresses.
          For Linux this default to "yes".

        NOTE: Currently numeric IPv6 addresses is 
          possible to give on user's mail.services
          -file or on global elm.mailservices -file. 
          Elsewhere (for example hostnames on
          mailbox names) they are misparsed.

        - Added FL_SHOWSYS value for flags -field of 
          struct rc_save_info_rec.
        - "/usr/bin/nm -D -f sysv" seems crash on
          Ubuntu 14.04.4 LTS. Try "nm -D" instead
          if "nm -D -f sysv" crashes on Configure.

        - Using previous answer to "What is your domain name?"
          question as default on Configure even when
          hostname gives different domain.
        New files:

        New elmrc options:

/ Kari Hurtta