EZMLM:

You will need the mysql-devel package to be installed on the system before compiling this software.

yum -y install mysql-devel

The QMR package provides ezmlm-0.53-idx-0.41.tar.gz .

The actual / raw version of this software is ezmlm-0.53 at http://cr.yp.to/ezmlm.html . However an extended version is available at http://www.ezmlm.org/ .

At the time of this writing, The most recent stable version of ezmlm-idx is 7.0.0, and is available at the link: http://www.ezmlm.org/archive/7.0.0/ . (Even the most recent version in the older stable series is 0.444, which is “newer” than what QMR package provides.) .

There is a twist. the documentation from the 7.0.0 INSTALL file tells us to download the actual 0.53 (non-idx) version from http://cr.yp.to/ezmlm.html . Untar both 0.53 and 7.0.0 versions in two separate directories. Then copy / move evereything from 7.0.0 to 0.53 directory. Then patch the 0.53 code with the idx.patch file provided in 7.0.0 . Configure various files. And complile the 0.53 directory.

Lets downlaod both.

cd /downloads/qmailnew

wget http://cr.yp.to/software/ezmlm-0.53.tar.gz

wget http://www.ezmlm.org/archive/7.0.0/ezmlm-idx-7.0.0.tar.gz

tar xzf ezmlm-0.53.tar.gz

tar xzf ezmlm-idx-7.0.0.tar.gz

cp -r /downloads/qmailnew/ezmlm-idx-7.0.0/\* /downloads/qmailnew/ezmlm-0.53/ --reply=yes

cd /downloads/qmailnew/ezmlm-0.53

patch < idx.patch

Next, configure various config files:

vi conf-etc

/usr/local/etc/ezmlm

vi conf-bin

/usr/local/bin/ezmlm

vi conf-qmail

/var/qmail

Next, edit the conf-sub, and change the storage from standard file location to mysql.

vi conf-sub

mysql

Choose a subscription database support. Available supports are:

  • std (Default) filesystem

  • mysql MySQL database

  • pgsql Postgres database

Note: The following is removed in 6.0.1


vi sub_mysql/conf-sqlcc

-I/usr/include/mysql


  1. RDBM Support.

MySQL:

If you want to compile ezmlm with MySQL support http://www.mysql.com,

edit conf-cc (include files) and conf-ld (library paths) to reflect

your MySQL installation (see MySQL documentation). The package

should work with MySQL version 3.22 and up.

So, setup the following:-

vi conf-cc

gcc -O -g -I/usr/include/mysql -I/usr/include/pgsql

vi conf-ld

cc -g -B /usr/lib64/mysql/

(note lib64, as I have a 64 bit system)

OR

echo "/usr/local/etc/ezmlm" > conf-etc

echo "/usr/local/bin/ezmlm" > conf-bin

echo "/var/qmail" > conf-qmail

echo "mysql" > conf-sub

echo “gcc -O -g -I/usr/include/mysql -I/usr/include/pgsql” > conf-cc

echo “cc -g -B /usr/lib64/mysql/” > conf-ld # Note: adjust lib or lib64 according to your architecture.

Time to compile the whole thing:

make clean

make

make man

make mysql # new in 7.0.0.

make setup

ln -s /downloads/qmailnew/ezmlm-0.53/lang/en\_US /downloads/qmailnew/ezmlm-0.53/lang/default

Test:-

[root@www ezmlm-0.53]# ./ezmlm-test

ezmlm-make: OK

Using subdb plugin: std

ezmlm-reject: OK

ezmlm-[un|is]sub[n]: OK

...

...  

copylines: OK

ezmlm-send: OK

Cleaning up...

[root@www ezmlm-0.53\]#

You may want to create a ezmlm MySQL Database at this point.

mysql -u root -p

create database ezmlm;

grant all on ezmlm.* to ezmlm@localhost identified by 'redhat';

flush privileges;

Note: The following DOES NOT work in 7.0.0 :-

Create ezmlm tables in the database: You must use the “-f” option with mysql, which will force mysql to continue even in case of failures.

./ezmlm-mktab-mysql -d list | mysql -D ezmlm -u ezmlm -predhat -f

You may get output as below:

[root@www ezmlm-0.53]# ./ezmlm-mktab-mysql -d list | mysql -D ezmlm -u ezmlm -predhat -f

ERROR 1051 (42S02) at line 6: Unknown table 'list'

ERROR 1051 (42S02) at line 7: Unknown table 'list_slog'

ERROR 1051 (42S02) at line 8: Unknown table 'list_digest'

ERROR 1051 (42S02) at line 9: Unknown table 'list_digest_slog'

ERROR 1051 (42S02) at line 10: Unknown table 'list_mod'

ERROR 1051 (42S02) at line 11: Unknown table 'list_mod_slog'

ERROR 1051 (42S02) at line 12: Unknown table 'list_allow'

ERROR 1051 (42S02) at line 13: Unknown table 'list_allow_slog'

ERROR 1051 (42S02) at line 14: Unknown table 'list_deny'

ERROR 1051 (42S02) at line 15: Unknown table 'list_deny_slog'

ERROR 1051 (42S02) at line 17: Unknown table 'list_cookie'

ERROR 1051 (42S02) at line 18: Unknown table 'list_mlog'

ERROR 1051 (42S02) at line 19: Unknown table 'list_digest_cookie'

ERROR 1051 (42S02) at line 20: Unknown table 'list_digest_mlog'

[root@www ezmlm-0.53]#

This is normal. These are just error messages returned when trying to DROP these tables. If you are paranoid, you may want to run this command again. This time it will not give any errors as the tables would not have been already created and will be dropped properly.

[root@www ezmlm-0.53]# ./ezmlm-mktab-mysql -d list | mysql -D ezmlm -u ezmlm -predhat -f

Now execute the test program again:

./ezmlm-test -l ezmlm -p redhat -h localhost

A successful test SHOULD look like this:-

[root@www ezmlm-0.53]# ./ezmlm-test -s mysql -p redhat -u ezmlm -d ezmlm -h localhost

ezmlm-make (1/2): OK

Using subdb plugin: mysql

ezmlm-reject: OK

ezmlm-[un|is]sub[n]: OK

ezmlm SQL: OK

...

...

unsubscribe: OK

copylines: OK

ezmlm-send: OK

[root@www ezmlm-0.53]#

Whereas, I got this instead:-

[root@www ezmlm-0.53]# ./ezmlm-test -s mysql -p redhat -u ezmlm -d ezmlm -h localhost

ezmlm-make: OK

Using subdb plugin: mysql

ezmlm-reject: OK

ezmlm-[un|is]sub[n]: OK

ezmlm-checksub: OK

ezmlm non-SQL: OK

ezmlm SQL: OK

ezmlm-send: OK

ezmlm-tstdig: OK

ezmlm-weed: OK

ezmlmrc contents: OK

ezmlm-clean: OK

ezmlm-store: OK

ezmlm-return: OK

ezmlm-warn (1/2): OK

ezmlm-manage (1/2): ezmlm-issubn: fatal: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘@example.com WHERE address = ‘sender@example.com’‘ at line 1

ezmlm-issubn: fatal: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘@example.com WHERE address = ‘sender@example.com’‘ at line 1

OK

ezmlm-request: OK

ezmlm-split: OK

ezmlm-gate: OK

ezmlm-idx: OK

ezmlm-get (index): OK

ezmlm-get (get): OK

ezmlm-get (thread): OK

ezmlm-get (digest): OK

ezmlm-manage (2/2): OK

ezmlm-moderate: OK

ezmlm-warn (2/2): OK

ezmlm-archive: OK

ezmlm-dispatch: OK

dispatch editor: OK

decode sender: OK

**Verifying message header and body contents...**

flags and substs: OK

messages: did not read local text/messages

[root@www ezmlm-0.53]#

I read somewhere on the net, that this should not be a problem, as I am using it and have not encountered any problem as yet.

Congratulations, anyway! It’s done.