Installing EZMLM-WWW
describing how to build and configure ezmlm-www on gentoo
Introduction
This page describes the process of building ezmlm-www on gentoo. Ezmlm-www is a perl-based web interface for browsing and searching ezmlm archives. Ezmlm itself comes with a cgi-based utility for web access called ezmlm-cgi, which is functional but fairly feature-free.
Resources
Process
- install g-cpan, gentoo's CPAN wrapper
-
emerge --ask g-cpan
- unmask a bunch of perl stuff (Mail::Box appears to be the one requiring ~x86 packages) - add the following to your /etc/portage/package.keywords file:
-
virtual/perl-Scalar-List-Utils ~x86
perl-core/Scalar-List-Utils ~x86
dev-perl/HTML-Parser ~x86
virtual/perl-Test-Simple ~x86
perl-core/Test-Simple ~x86 - build/install a bunch of perl stuff via g-cpan. Note: g-cpan didn't seem to handle multiple packages on one command, so do them all individually:
-
g-cpan --ask --log --verbose Mail::Ezmlm::Archive
-
g-cpan --ask --log --verbose Net::DNS
-
g-cpan --ask --log --verbose Net::Ident
-
g-cpan --ask --log --verbose Mail::Box
-
g-cpan --ask --log --verbose Email::Simple
-
g-cpan --ask --log --verbose Date::Parse
-
g-cpan --ask --log --verbose KinoSearch
- install one more perl module, which for some reason confuses g-cpan:
-
emerge --ask perl-gcpan/vpopmail
- download the ezmlm-www tarball
- extract the tarball and copy the files to the directory in your apache DocumentRoot from which you want the archives to be visible
-
tar -xvf ezmlm-www-1.4.4.tar.gz
-
cp -R ezmlm-www-1.4.4/root/* /var/www/localhost/cgi-bin/ezmlmwww
- build the cgi executable:
-
cd /var/www/localhost/cgi-bin/ezmlmwww
-
gcc index.cgi.c -o index.cgi
- set permissions:
-
chown -R vpopmail:vpopmail /var/www/localhost/cgi-bin/ezmlmwww
-
chmod 4711 index.cgi
-
chmod 755 ezmlm-www.pl
-
chmod 6744 search/ez_indexer.pl
- edit config.pm to reflect your ezmlm list info. I'm using vpopmail, but the 'user vpopmail' option didn't seem to work for me, so just use the normal config blocks.
- at this point, you can test it by pointing your browser at <ezmlmwww>/index.cgi, where <ezmlmwww> is wherever you installed the files.
- to enable search, we have to do a couple of extra steps.
- edit search/ez_indexer.pl
-
our $Engine = 'kinosearch';
-
push @Lists, {
list_dir => '/path/to/mailinglist',
index_dir => '/path/to/wherever/you/want/search/indices/to/live'
}; - edit config.pm again and add a few lines to each list config block:
-
search => 'kinosearch',
search_dir => '/path/to/wherever/you/want/search/indices/to/live' - run the indexer manually to create the search indices:
-
ez_indexer.pl --create --verbose
- the search indices need to be updated regularly, so add the following to a crontab for the appropriate user (note - since we used SUID on ez_indexer.pl, we can have root run it in the system crontab):
-
ez_indexer.pl --update
- That's it!