# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name mailman version 2.1.23 categories mail platforms darwin license GPL-2 maintainers mps openmaintainer description Mailman, the GNU Mailing List Manager long_description Mailman is free software for managing electronic \ mail discussion and e-newsletter lists. Mailman is \ integrated with the web, making it easy for users \ to manage their accounts and for list owners to \ administer their lists. Mailman supports built-in \ archiving, automatic bounce processing, content \ filtering, digest delivery, spam filters, and more. homepage http://www.list.org/ depends_lib port:python27 \ port:py27-dnspython master_sites gnu extract.suffix .tgz checksums rmd160 cdd3192d6085ab16586edd5c0f897fa2d1c4f6e8 \ sha256 b022ca6f8534621c9dbe50c983948688bc4623214773b580c2c78e4a7ae43e69 # Create a startupitem startupitem.create yes startupitem.start "${prefix}/share/mailman/bin/mailman.init start" startupitem.stop "${prefix}/share/mailman/bin/mailman.init stop" # Mailman installation directories set execdir ${prefix}/libexec/${name} set sharedir ${prefix}/share/${name} set datadir ${prefix}/var/${name} set docdir ${prefix}/share/doc/${name} set confdir ${prefix}/etc/httpd # Mailman user/group name set mmuser mailman set mmgroup mailman # CGI group name (should match apache Portfile) set cgigroup www patchfiles patch-Defaults.py.in \ patch-mm_cfg.py.dist.in configure.pre_args --exec-prefix=${execdir} \ --prefix=${sharedir} \ --with-var-prefix=${datadir} configure.args --with-cgi-ext=.cgi \ --with-cgi-gid=${cgigroup} \ --with-groupname=${mmgroup} \ --with-mail-gid=${mmgroup} \ --with-python=${prefix}/bin/python2.7 \ --with-username=${mmuser} \ --without-permcheck pre-destroot { addgroup ${mmgroup} adduser ${mmuser} gid=[existsgroup ${mmgroup}] xinstall -d -m 02775 -o root -g ${mmgroup} ${destroot}${execdir} xinstall -d -m 02775 -o root -g ${mmgroup} ${destroot}${sharedir} xinstall -d -m 02775 -o ${mmuser} -g ${mmgroup} ${destroot}${datadir} } post-destroot { # Create dummy files to retain empty directory tree xinstall -d -m 02775 ${destroot}${datadir}/lists/.turd system "find ${destroot}${datadir} -type d -empty | xargs -n1 -I% touch %/.turd" # Cleanup permissions & ownership foreach dir [exec find ${destroot}${sharedir} -type d ! -perm 02775] { ui_info "${dir}: setting permissions to 02775" file attributes $dir -permissions 02775 } # Install startup script xinstall -d -m 0755 ${destroot}${prefix}/etc/rc.d system "ln -s ../../../[strsed ${sharedir} "g|^${prefix}/||"]/scripts/mailman \ ${destroot}${prefix}/share/mailman/bin/mailman.init" # Install Apache configuration file xinstall -d -m 0755 ${destroot}${confdir} xinstall -m 0644 ${filespath}/${name}.conf.in \ ${destroot}${confdir}/${name}.conf.dist reinplace "s|@EXECDIR@|${execdir}|" ${destroot}${confdir}/${name}.conf.dist reinplace "s|@DATADIR@|${datadir}|" ${destroot}${confdir}/${name}.conf.dist reinplace "s|@SHAREDIR@|${sharedir}|" ${destroot}${confdir}/${name}.conf.dist reinplace "s|@CONFDIR@|${confdir}|" \ ${destroot}${sharedir}/Mailman/mm_cfg.py.dist # Install documentation files xinstall -d -m 0755 ${destroot}${docdir} foreach file [glob ${worksrcpath}/\[A-IN-Z\]*] { xinstall -m 0644 ${file} ${destroot}${docdir} } # Check installation under destroot # system "cd ${destroot}${sharedir} && \ # DESTDIR=${destroot} PYTHONPATH=.:./Mailman ${destroot}${sharedir}/bin/check_perms" # Don't register config files to the port so changes are preserved # across upgrades. file delete -force ${destroot}${sharedir}/Mailman/mm_cfg.py } post-activate { # Check for an existing mm_cfg.py and copy the "dist" version # into place if there isn't one. if {![file exists ${sharedir}/Mailman/mm_cfg.py]} { copy ${sharedir}/Mailman/mm_cfg.py.dist ${sharedir}/Mailman/mm_cfg.py } if {![file exists ${confdir}/${name}.conf]} { copy ${confdir}/${name}.conf.dist ${confdir}/${name}.conf } } # Notify the user what needs to be done after installation notes " Be sure to verify the email and URL host settings in the Mailman configuration\ file (they may have been guessed incorrectly during the configuration step): ${sharedir}/Mailman/mm_cfg.py Be sure to add the following line to your Apache httpd.conf configuration file\ to enable Mailman web access: Include ${confdir}/${name}.conf Be sure to set up the crontab entries for the '${mmuser}' user. Mailman runs a\ number of cron jobs for its basic functionality. cd ${sharedir}/cron sudo crontab -u ${mmuser} crontab.in Also, be sure to read the following files for details on creating your\ site-wide list, setting your site and list creator passwords, and creating\ your first list: ${docdir}/INSTALL ${docdir}/README Finally, either restart your system to start up the Mailman queue runner, or\ use the following to start it running immediately: sudo port load ${name} "