Document Actions

Installing EZMLM-WWW

by David Hostetler [modified 20070914:23:57 (Fri)] [posted 20070313:08:57 (Tue)]

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

  1. install g-cpan, gentoo's CPAN wrapper
    • emerge --ask g-cpan
  2. 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
  3. 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
  4. install one more perl module, which for some reason confuses g-cpan:
    • emerge --ask perl-gcpan/vpopmail
  5. download the ezmlm-www tarball
  6. 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
  7. build the cgi executable:
    • cd /var/www/localhost/cgi-bin/ezmlmwww
    • gcc index.cgi.c -o index.cgi
  8. 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
  9. 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.
  10. at this point, you can test it by pointing your browser at <ezmlmwww>/index.cgi, where <ezmlmwww> is wherever you installed the files.
  11. to enable search, we have to do a couple of extra steps.
  12. 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'
      };
  13. 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'
  14. run the indexer manually to create the search indices:
    • ez_indexer.pl --create --verbose
  15. 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
  16. That's it!