Experimental RPM spec file for ELM ME+ 2.5 PLalpha63 exists on <URL: http://www.elmme-mailer.org/rpm/elm-ME+2.5.html > directory. Files are following - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63.spec RPM spec file - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63.spec.elm-key-2018.sig - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63.spec.sig - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63-1.mdk7.2.src.rpm Source rpm - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63-1.mdk7.2.src.rpm.sig Only binary packages for old Mandrake release 7.2 are available (Linux 2.2, glibc 2.1, Sendmail 8.13). - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63-1.mdk7.2.i686.rpm Package elm binary RPM build on Linux Mandrake release 7.2 - http://www.elmme-mailer.org/rpm/elm-ME+2.5.alpha63-1.mdk7.2.i686.rpm.sig - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha63-1.mdk7.2.i686.rpm Package elm-mod binary RPM build on Linux Mandrake release 7.2 - http://www.elmme-mailer.org/rpm/elm-mod-ME+2.5.alpha63-1.mdk7.2.i686.rpm.sig - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha63-1.mdk7.2.i686.rpm Package elm-tls binary RPM build on Linux Mandrake release 7.2 - http://www.elmme-mailer.org/rpm/elm-tls-ME+2.5.alpha63-1.mdk7.2.i686.rpm.sig Source and binary packages are signed internally with GPG key elm.key.2018.asc (44FC796B 2018-12-01). This is is compiled agaist Sendmail 8.13 (not from Mandrake distribution). elm-tls package do not load/work on Mandrake 7.2. * 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 - /usr/local/lib/elm.tagfilter.entities 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 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 =resolvuse-connect-library =tls resolvuse-mailer-library = smtpresolvNote that libelmme-resolv.so does not compile on all distributions. In that case omit resolv from elm.rc. Note that libelmme-rls.so does not load on Linux Mandrake release 7.2. In that case omit tls from elm.rc. 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 - /usr/local/lib/elm.tagfilter.entities 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 - /usr/local/lib/elm.tagfilter.entities.NEW Package elm-mod includes libelmme-iconv.so and libelmme-smtp.so. If package elm-mod includes libelmme-resolv.so, this is noted. And package elm-tls includes libelmme-tls.so. 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 installed. 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. SUMMARY: This release includes tagfilter module for filtering text/enriched and text/html tags. This release adds "editor-tfent-propline" and "page-tagfilter" elmrc options and new tool "elmtagfilterents". This release adds global "elm.tagfilter.entities" and user "~/.elm/tagfilter.entities" configuration files. Also some bug fixes and other changes are included.
Changes on Elm ME+ 2.5 PLalpha63 compared with Elm ME+ 2.5 PLalpha62 -------------------------------------------------------------------- SUMMARY: This release includes tagfilter module for filtering text/enriched and text/html tags. This release adds "editor-tfent-propline" and "page-tagfilter" elmrc options and new tool "elmtagfilterents". This release adds global "elm.tagfilter.entities" and user "~/.elm/tagfilter.entities" configuration files. Also some bug fixes and other changes are included. - Changed prototype of string_matches_ascii() - Added op parameter: SMA_op_normal, SMA_op_match_prefix, SMA_op_find_ascii, SMA_op_return_order SMA_return_len can not used with SMA_op_return_order - Added tagfilter module for <tag> filtering. - Tagfilter supports following text/enriched tags when builtin++ pager is used: <bold> <underline> <italic> <center> (detected, does nor work correctly (*)) <nofill> Other tags are just filtered. - Rewrapping and joining of multiple lines to one line for displaying not supported when replying or forwarding mail or when viewing with external pager. This is similar than how content type text/plain; format=flowed is handled. - If builtin pager is not used (or when replying or forwarding mail) shows message [ text/enriched is unsupported, filtering tags. ] (*) Centering does not work when displayed line cover several tags or several lines on original message (before newline is converted to space or multiple lines are joined to one line for displaying). - Added pg_ITALIC flag (termcap codes ZH and ZR). - Added pg_DIM flag (termcap code mh). - Added pg_SUBSCRIPT flag (termcap codes ZN and ZV). - Added pg_SUPERSCRIPT flag (termcap codes ZO and ZW). - Added pg_STRIKETHROUGH (no termcap code) - Changed PR_CENTER_THIS handling on span_helper() - Tagfilter supports following text/html tags when builtin++ pager is used: <html> <head> <body> <noscript> <b> <br> <em> <hr> <i> <p> <pre> <q> <s> (!!) <strong> <sub> (XX) <sub> (XX) <u> - Tagfilter uses display attributes for following text/html tags (but reports them unsupported) when builtin++ pager is used: <cite> <del> <h1> <h2> <h3> <h4> <h5> <h6> <var> - Other text/html tags are just used for define what are recognized tags but otherwise just filtered. - Tagfilter recognizes different text/html tags depending on inside on what tags they occurs. (!!) Only when "ANSI-SGR strikethrough" is given on global elm.terminalinfo or on user ~/.elm/terminal.info. (XX) Incompletely - no terminals support this - If builtin pager is not used (or when replying or forwarding mail) shows message [ text/html is unsupported, filtering tags. ] - Added elmrc option "page-tagfilter". If set, media types given as keywords are displayed with "pager", otherwise these are considered to need metamail (or mailcap programs). Option includes list of keywords: none None of values are selected text/enriched text/enriched type does not require external programs or metamail text/html text/html type does not require external programs or metamail This does not take account possible unsupported tags or that builtin++ pager is not used as "pager". - Added global elm.tagfilter.entities and user .elm/tagfilter.entities. These files defines text/html named character references recognized by tagfilter. See also "Tagfilter entities listing" - Builtin text/html named character references recognized by tagfilter are & unicode 0x0026 & -character unicode 0x00A0 NO-BREAK SPACE " unicode 0x0022 " -character < unicode 0x003C < -character > unicode 0x003E > -character - Added elmtagfilterents -command. - Added "editor-tfent-propline" elmrc option. This is similar than "editor-elmrc-propline". If set to "emacs", then when on user's tagfilter.entities file, line # -*- coding: ... -*- is added to top of file. That line is also written if "editor-tfent-propline" elmrc option is set to "auto" (default) and line detected when file is read. If set to "ignore", then editor property line # -*- coding: ... -*- on top of file is ignored. - Global global elm.terminalinfo and user ~/.elm/terminal.info can now include ANSI-SGR which tell elm to use ANSI SGR attributes for bold, dim, italic, underline, blinking, reverse, strikethrough, superscript and subscript. If termcap specifies also attribute, elm may invoke it twice. Do not use ANSI-SGR if termcap already specifies it. This is mainly for strikethrough, which is not supported by termcap. For more information see chapter "Additional terminal information". - Added struct out_entity routines with lib/out_entity.c - Added state_putentity() to lib/elmlib.h and lib/state_out.c - Added string_type_have_unicode() to hdrs/elmlib.h and lib/string.c - Added state_add_opcode_pager_range() to hdrs/elmlib.h and lib/state_out.c - Added state_pager_add_param_text() to hdrs/elmlib.h and lib/state_out.c - Added struct pager_param_value routines with lib/pager_range.c - Added stringbuffer_add_entity() and stringbuffer_add_pager_param() to hdrs/elmlib.h and lib/stringbuffer.c - Added new_out_entity(), free_out_entity(), inc_out_entity_refcount(), out_entity_reference_key(), out_entity_text_value(), out_entity_unicode_value(), and dup_out_entity() to hdrs/elmlib.h and lib/out_entity.c - Added missing fclose(f) to parse_hash_mark_entries() - Change on dump_aliases_map() - Changed exit status handling on elmregister. - Possible fix for state_putunicode() on lib/state_out.c - Moved inc_pager_range_refcount() from hdrs/pg_range_imp.h to hdrs/elmlib.h - Potential fix for string_sort_cmp() - Fixed crash when inherited page_range was used PAGER RANGE PANIC in .../lib/pager_range.c:562:get_pager_range_serialization_from_file >>>Bad data read from file - Added new_string_alt_text(), new_string_alt_entity(), get_string_alt_value(), inc_string_alt_refcount() and free_string_alt() to hdrs/elmlib.h and lib/string_alt.c - Added get_lineext_alt_and_walk()to hdrs/elmlib.h and lib/pager_lineext.c - Added curses_available_string() to hdrs/me.h and src/screen/curses.c - Added get_pager_param_from_stringbuffer() to hdrs/me.h and lib/stringbuffer.c - Some fixed for error handling of load_terminal_map() - Added ANSI_sgr_values[] to hdrs/msiclib.h and lib/misc/terminal.c - Added pg_set_or_disable_flags() to hdrs/msiclib.h and lib/misc/terminal.c - Changed get_pager_range_change() - Changed malloc_simple_pager_range() - Fix for put_pager_range_serialization_to_file() - Fix for stringbuffer_add_pager_range() - Fix for state_convert_EOLN() - Fix for get_decoded_attachment() - Added curses_check_terminal() to hdrs/me.h and src/screen/curses.c New tool: elmtagfilterents New files: melib/tagfilter.c melib/tagfilter_decode.c hdrs/tagfilter_imp.h melib/tagfilter_entity.c melib/init.c doc/elmtagfilent-info utils/elmtagfilterents.c doc/tagfilter.entities ConfTool/GenEntities hdrs/convert_status.h lib/convert_status.c doc/elmtagfilterents.1 melib/tagfilter_tag.c lib/out_entity.c melib/tagfilter_enriched.c hdrs/elmme-magic.h melib/tagfilter_html.c hdrs/pg_params_imp.h lib/string_alt.c New elmrc option: editor-tfent-propline page-tagfilter Additional terminal information ------------------------------- Files libdir/elm.terminalinfo and ~/.elm/terminal.info handle terminal specific methods for switching of chartset of terminal. In the file there may be following kinds of lines: term ISO-2022 charset-name term ISO-2022 charset-definition term ISO-2022 charset-name [ condition ] term ISO-2022/DW charset-name term ISO-2022/DW charset-definition term ISO-2022/DW charset-name [ condition ] term ISO-2022-LIKE charset-name bank-specification term PRIVATE charset-name d/d d/d d/d term PRIVATE charset-name [ condition ] d/d d/d d/d term flag flag-keyword term DW charset-name term DW charset-name [ condition ] term ANSI-SGR attribute term ANSI-SGR attribute [ condition ] where term is type of terminal (ie value of $TERM). ISO-2022 is literal, which indicates that next column is character set name or character set definition as on elm.mimecharsets or mime.charsets file and that character set switching happends as given with other-set and bank-Gx-* attributes on character set definition. PRIVATE literal, which indicates that next two columns are character set name and bytes given on d/d format for switch character set. ISO-2022/DW literal indicates that terminal uses same attributes than on case ISO2022 literal. Additionally that says that 94x94 and 96x96 sets consume two character positions on display with that terminal. That literal is available only with charset which have type=iso2022. It is assumed that these escape sequences do not affect to input (keyboard) charset of terminal (ie. do not affect 'keyboard mode' or 'keyboard language'). [ condition ] is like [ exp = exp ] where exp can be either "quoted value" or $ENV_VAR. "quoted value" allow also environment variables (same way than Elm ME+ allows on pathnames.) For example that may be used on lines like linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15 Also [ condition ] can be like [ exp =~ exp ] Right side is treated as pattern ( * and ? are joker characters.) For example that may be used on lines like xterm ISO-2022 UTF-8 [ $XTERM_VERSION=~"XTerm(*)" ] Read comments about using of these from doc/terminal.info ISO-2022-LIKE indicates that terminal assigns private codes for the charset. That definition do not define iso 2022 codes for the charset, but it is used than these codes are defined for charset. For example that may be used on lines like vt200 ISO-2022-LIKE DEC-MCS left=bank-G0;bank-G0-94=4/2;right=bank-G2;bank-96=3/12 DW indicates for system charset that wcwidth() function should be used to get char width. This means that logical width of character may be 0, 1 or 2 columns on that terminal. On systems which have __STDC_ISO_10646__ defined, DW flag on terminal.info works like "locale-charsets" option if charset and terminal match. If charset does not support calculation of visible len and there is DW flag given for that charset and terminal, then error message Double wide characters are not supported is printed. Flag keyword xterm-title specifies that terminal supports changing of window title and icon name in the same way as xterm. That can be used with elmrc option set-window-title. Flag keyword xwsh-title that terminal supports changing of window title and icon name similar than SGI's xwsh. ANSI-SGR indicates that terminal supports display attributes chich are not given on termcap specification. These attributes are following (listed attribute name and uses codes for enable an disable them): bold CSI 1 m CSI 22 m dim CSI 2 m CSI 22 m italic CSI 3 m CSI 23 m underline CSI 4 m CSI 24 m blinking CSI 5 m CSI 25 m reverse CSI 7 m CSI 27 m strikethrough CSI 9 m CSI 29 m superscript CSI 73 m CSI 75 m subscript CSI 74 m CSI 75 m Tagfilter entities listing ------------------------- Files libdir/elm.tagfilter.entities and ~/.elm/.elm/tagfilter.entities handles named character references regognized by tagfilter. In the file there may be following kinds of lines: &tag; html nnnn &tag; html 0ooo &tag; html xhhhh &tag; html "xxxx" where nnnn is decimal value (must start with 1-9) where 0ooo is octal value (must start with 0) where xhhh is hexdecimal (must start with x) where "xxxx" is string value (must be quoted with ") where &tag; is entity / named character reference which includes ending ; when matching. where &tag is entity / named character reference which matches if there is no ; where html specifies that these entities are for text/html (other keywords not currently defined) Lines starting with # are comments Also there can be ending # comment on data lines. 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 - 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>