DATE: Thu Jul 18 17:37:52 IST 2019
The build for this will be ready next week at
The current final 2.7 build on obs is identical to the 2.8 release
You can find the ChangeLog at the bottom of this notes.
This is a major release with massive changes and complete overhaul of the code. The major changes in this release are
o All useful, reusable functions in qmail have been moved to libqmail package which
provides both shared and static library for these functions
o Multiple fixes in libdkim
o moved tcpserver access control files to /etc/indimail/tcp for
write access by indimail auth module (relay updation, pop-bef-smtp)
and other programs running with indimail uid
o maildirsize program to print the disk usage of a Maildir
o qfrontend - qmail-qfilter frontend to run user written qmail-qfilter
scripts. A working sample for smtp ratelimiting -f-smtp-ratelimit is
part of distribution
o Ability to load mysqlclient library at runtime using control file
/etc/indiamil/control/mysql_lib. This enables indimail-mta to be shipped
without being linked to a particular mysql client library. Post installation
one can either chose mariadb client library or mysql community library by
specifying path to the library in /etc/indimail/control/mysql_lib
Programs like qmail-smtpd, tcpserver, qmail-remote, qmail-lspawn, qmail-rspawn
can now load mysql client library at runtime.
o Added rule in cron for cleaning surbl cache directory. Added control files
level2-tlds, level3-tlds part of the binary package
o added X-Bounced-Address header for bounces created by qmail-send. This allows one
to exactly pinpoint the address that caused the bounce
o Reduced CPU utilization of qmail-remote by reading data in chunks rather than one
byte at a time.
indimail-mta has two RPM / DEB / yum / apt repositories for most of the Linux Distros at
1) Stable Releases
-- ---------------
Repository Location
Install Instructions
Currently, the list of supported distributions for indimail-mta is
* SUSE Linux distributions
o openSUSE_Leap_15.0
o openSUSE_Leap_42.3
o openSUSE_Leap_42.2
o openSUSE 13.2
o SUSE Linux Enterprise 15
o SUSE Linux Enterprise 12 SP3
o SUSE Linux Enterprise 12 SP2
o SUSE Linux Enterprise 12 SP1
o SUSE Linux Enterprise 12
* Redhat based distributions
o Fedora 30
o Fedora 29
o Red Hat Enterprise Linux 7
o Red Hat Enterprise Linux 6
o CentOS 7
o CentOS 6
* Debian Distributions
o Debian 10
o Debian 9.0
o Debian 8.0
o Ubuntu 18.10
o Ubuntu 18.04
o Ubuntu 17.04
o Ubuntu 16.04
o Ubuntu 14.04
2) Bleeding Edge Releases
-- ----------------------
indimail-mta has RPM / yum repositories for the latest features being added. You will find
the RPMs at
Repository Location
Install Instructions
ChangeLog
Release 2.8 Start 29/10/2018
1. fixed mysysconfdir variable in spec file
2. svctool - fixes for clamd, freshclam supervise run file
3. svctool - fix for missing ln -r option in CentOS6
4. svctool - fixed clamd config and run file
5. svctool - removed wiping of newu file
6. added maildirsize program
7. smtpd.c - removed potential memory leaks
8 svctool - change for deprecated AllowSupplementaryGroups in clamav
9. svctool - changes for MySQL 8.0
10. updated swaks to version 20181104.0
11. svctool - fixed enable_service, disable_service
12. smtpd.c - removed potential memory leaks
13. envrules.c - skip white spaces when setting envrules
14. tablematch.c - use HOSTACCESS environment variable as alternate filename
for hostaccess control file
15. svctool - renamed IMAPDEBUGFILE as imap-debug.txt
16. svctool - incorrect assignment of domain_name variable in svctool
17. cdbmake-12 - Treat all input data as single-byte characters.
18. dkimverify.cpp - fixed conversion from int to char for cross compiling on arm
19. dkim.c - Added missing usage string for allowing unsigned subject
20. dk-filter.sh - added -S, -f option for verification of signatures with
unsigned subject, unsigned from
21. dknewkey.sh - fix argument count check
22. qmail-dkim.c - skip nosignaturedomains if domain is present in signaturedomains
23. dkimverify.cpp - made scope of sFromDomain static
24. allow DKIMVERIFY env variable in place of DKIMPRACTICE when
SIGN_PRACTICE="local"
25. etrn.sh - set pipefail to catch error if ipmeprint fails
26. qfrontend - qmail-qfilter frontend
27. qf-smtp-ratelimit - qmail-qfilter SMTP ratelimiting script
28. envrules.c, smtpd.c - do not treat regcomp error as matches
29. matchregex.c - added regcomp error cases for documentation
30. indimail_stub.[c,h] - added parse_email function
31. changed interface for loadLibrary(), closeLibrary() and getlibObject()
32. svctool - fixed db creation when using mariadb
33. sqlmatch.c, qmail-sql.c - load MySQL shared lib dynamically
34. tcpserver - load mysql lib dynamically
35. qlocal_upgrade.sh, svctool - create MYSQL_LIB for dynamically loading
MySQL shared libs
36. dkimverify.cpp - Increased buffer length for dns result
37. dns.cpp - fixed pointer after realloc
38.
configure.ac, dkimverify.cpp, dkimverify.h - fix for 32 bit systems
where time_t is 4 bytes & encounters year 2038 issue
39. Added rule in cron for cleaning surbl cache directory
40. Removed requirement of SURBL environment variable in surbfilter
41. hier.c - create surbl cache directory and copy level2-tlds, level3-tlds
control files
42. indimail_stub.c - use mysql_lib control file to dlopen libmysqlclient
if MYSQL_LIB env variable is not defined
43. ucsp-tcp - load_mysql.c - use mysql_lib control file to dlopen libmysqlclient
if MYSQL_LIB env variable is not defined
44. qlocal_upgrade.sh - create /etc/indimail/control/mysql_lib control file
45. etrn.c, maildirsize.c, qmail-lspawn.c, qmail-rspawn.c, qmail-showctl.c,
smtpd.c, spawn.c - use libindimail control file to load libindimail
if VIRTUAL_PKG_LIB env variable not defined
46. indimail_stub.c assign error to error buffer in getlibObject()
47. ucspi-tcp load_mysql.c assign error to error buffer in getlibObject()
48. qmail-sql.c - BUG - return value of insert_db wasn't checked
49. removed multitail program
50. removed getopt() with subgetopt()
51. declare variables as extern in sgetopt.h to prevent wrong assignment of
variables in getopt()/subgetopt() lib
52. svctool - fixed variable value getting replaced with '-'
53. svctool - Fixes for mysql ssl config (indimail.cnf)
54. qmail-dkim - added env variable HONOR_BODYLENGTHTAG to honor body length
tag during verification
55. libdkim - dkim.c, dkimverify.h, dkimbase.cpp, dkimverify.cpp - BUG
verfication was not honoring body length tag
56. svctool - use --skip-name-resolve for all mysqld versions
57. svctool - replaced multiple embedded RCS id with a single echo statement
58. dkim.c - fixed return value interpretation of DKIMVERIFY
59. dk-filter.sh - added code for -d option in DKIMSIGNOPTIONS
60. inotify.c - added notifications for open and delete
61. dk-filter.sh - use DEFAULT_DKIM_KEY env variable for default signing key
62. qmail-send.c - insert X-Bounced-Address header for bounces
63. dkimsign.cpp - use X-Bounced-Address for DKIM signing for bounces
64. svctool - added ability to reuse CA for generating certs for MySQL/MariaDB
65. svctool - update global_grants for 'mysql' user
66. svctool - fix for sql-mode on mysqld version 8
67. svctool, indimail-mta.spec - fixed tcp cdb file path
68. qmail-inject - to not parse mail header in qmail-inject if -a is given
69. qmail-remote - patch by Bruce Guenter - speed up blast() function by reading
in chunks of 4096 bytes
70. smtpd.c fixed ssl getting terminated by output on fd 1 after exec
71. setup.c - removed dummy bsd style install output
72. get_uid.c - return actual user/gruop from password/group file
73. moved common/reusable functions from qmail to libqmail and link
with libqmail