[46011] trunk/dports/mail

Ryan Schmidt ryandesign at macports.org
Wed Jan 28 21:42:46 PST 2009


On Jan 27, 2009, at 01:55, raimue at macports.org wrote:

> Revision: 46011
>           http://trac.macports.org/changeset/46011
> Author:   raimue at macports.org
> Date:     2009-01-26 23:55:26 -0800 (Mon, 26 Jan 2009)
> Log Message:
> -----------
> mail/vpopmail:
> New port, closes #14022
>
> Added Paths:
> -----------
>     trunk/dports/mail/vpopmail/
>     trunk/dports/mail/vpopmail/Portfile
>     trunk/dports/mail/vpopmail/files/
>     trunk/dports/mail/vpopmail/files/patch-configure.diff
>
> Added: trunk/dports/mail/vpopmail/Portfile
> ===================================================================
> --- trunk/dports/mail/vpopmail/Portfile	                         
> (rev 0)
> +++ trunk/dports/mail/vpopmail/Portfile	2009-01-27 07:55:26 UTC  
> (rev 46011)
> @@ -0,0 +1,143 @@
> +# $Id$
> +
> +PortSystem      1.0
> +
> +name				vpopmail
> +version				5.4.25
> +categories			mail
> +maintainers			yahoo.com:compconsultant
> +platforms			darwin
> +
> +description			Manage multiple virtual domains with Qmail
> +
> +long_description	        Vpopmail is a set of programs for  
> creating and managing multiple virtual domains on a qmail server,  
> with full support for many POP/IMAP servers.
> +
> +variant onchange description {Enable use on the ONCHANGE script} {
> +	configure.args-append	--enable-onchange-script
> +}
> +
> +variant mysql5 description {Store vpopmail users and more in  
> MySQL5} {
> +	configure.args-append	--enable-auth-module=mysql \
> +				--enable-auth-logging \
> +				--enable-sql-logging \
> +				--enable-incdir=${prefix}/include/mysql5/mysql \
> +				--enable-libdir=${prefix}/lib/mysql5/mysql \
> +				--enable-valias
> +	depends_lib-append	port:mysql5
> +}

To give the user the choice of using the mysql5 or mysql5-devel  
ports, the dependency on mysql should be changed from "port:mysql5"  
to e.g. "path:bin/mysql_config5:mysql5"

> +variant roaming description {Enable POP before SMTP functionality} {
> +	configure.args-append	--enable-roaming-users \
> +				--enable-tcpserver-file=${prefix}/var/${name}/etc/tcp.smtp
> +}
> +
> +variant noclearpasswords description {Do not store a cleartext  
> version of the password} {
> +	configure.args-append	--disable-clear-passwd
> +}
> +
> +variant learnpasswords description {If user password is not set,  
> learn it the first time they authenticate} {
> +	configure.args-append	--enable-learn-passwords
> +}
> +
> +variant spamassassin description {Enable spamassassin integration} {
> +	configure.args-append	--enable=spamassassin \
> +				--enable-spamc-prog=${prefix}/bin/spamc
> +	depends_lib-append	port:p5-mail-spamassassin
> +}
> +
> +variant maildrop description {Enable maildrop integration} {
> +	configure.args-append	--enable-maildrop \
> +				--enable-maildrop-prog=${prefix}/bin/maildrop
> +	depends_lib-append	port:maildrop
> +}
> +
> +variant logverbose conflicts logpwds logall description {Enables  
> verbose logging of all attempts, with passwords} {
> +	configure.args-append	--enable-logging=v
> +}
> +
> +variant logpwds conflicts logverbose logall description {Log  
> errors with passwords} {
> +	configure.args-append	--enable-logging=p
> +}
> +
> +variant logall conflicts logpwds logverbose description {Log all  
> attempts, no passwords} {
> +	configure.args-append	--enable-logging=y
> +}

There are a lot of variants here. Can this be reduced at all? For  
example, could the user specify the logging options in a  
configuration file instead?

> +homepage			http://www.inter7.com/index.php?page=vpopmail
> +
> +depends_lib			port:qmail-spamcontrol \
> +				port:ucspi-tcp
> +
> +master_sites		        sourceforge
> +				
> +checksums			md5 273c2c25906aed5206e97b01a2593aa6 \
> +				sha1 ce62415fbd338b80f1962a477d94276f622756d0 \
> +				rmd160 57142cca0617bd95ef2e5f4aa74ab5fa0844d6df
> +
> +patchfiles			patch-configure.diff
> +
> +configure.args			--enable-qmaildir=${prefix}/var/qmail \
> +				--enable-tcprules-prog=${prefix}/bin/tcprules \
> +				--enable-qmail-ext \
> +				--prefix=/opt/local \
> +				--exec-prefix=/opt/local

Please use the ${prefix} variable instead of assuming it's /opt/ 
local. Actually, "--prefix=${prefix}" is already in  
configure.pre_args by default, so you should remove "--prefix=/opt/ 
local" from configure.args entirely. And --exec-prefix by default is  
the value of --prefix, so you don't need the line "--exec-prefix=/opt/ 
local" either.

> +build.target
> +
> +destroot.target		install-strip
> +destroot.keepdirs	${destroot}${prefix}/var/${name}/domains
> +
> +pre-configure {
> +
> +	# The vpopmail users and groups are required before compilation
> +	addgroup vchkpw gid=2109
> +	adduser vpopmail uid=7797 gid=[existsgroup vchkpw]  
> realname=vpopmail home=${prefix}/var/${name} shell=/usr/bin/true
> +}
> +
> +post-destroot {
> +	if {[variant_isset roaming]} {
> +		system "echo \"127.:allow,RELAYCLIENT=''\" > ${destroot}$ 
> {prefix}/var/${name}/etc/tcp.smtp.sample"
> +		system "echo \"localhost|0|user|password|database\" >${destroot}$ 
> {prefix}/var/${name}/etc/tcp.smtp.sample"
> +		system "chown vpopmail:vchkpw ${destroot}${prefix}/var/${name}/ 
> etc/tcp.smtp.sample"
> +                xinstall -m 644 -W ${worksrcpath}  
> README.roamingusers ${destroot}${prefix}/var/${name}/doc
> +	}
> +	if {[variant_isset mysql5]} {
> +		file rename ${destroot}/${prefix}/var/${name}/etc/vpopmail.mysql  
> ${destroot}/${prefix}/var/${name}/etc/vpopmail.mysql.sample

You should not put a slash before the variable ${prefix} because the  
variable ${prefix} already begins with a slash.

> +                xinstall -m 644 -W ${worksrcpath} README.mysql $ 
> {destroot}${prefix}/var/${name}/doc
> +	}
> +	if {[variant_isset maildrop]} {
> +                xinstall -m 644 -W ${worksrcpath} README.maildrop $ 
> {destroot}${prefix}/var/${name}/doc
> +	}
> +	if {[variant_isset onchange]} {
> +                xinstall -m 644 -W ${worksrcpath} README.onchange $ 
> {destroot}${prefix}/var/${name}/doc
> +	}
> +	if {[variant_isset spamassassin]} {
> +                xinstall -m 644 -W ${worksrcpath}  
> README.spamassassin ${destroot}${prefix}/var/${name}/doc
> +	}
> +}

The usual place for documentation files would be ${prefix}/share/doc/$ 
{name} or ${prefix}/share/doc/${name}-${version}... or is vpopmail  
already storing other documentation in ${prefix}/var/${name}/doc?  
Would users of other vpopmail distributions expect it there?

I have the same concerns about the configuration files which, based  
on the above, appear to live in ${prefix}/var/${name}/etc/ but a more  
traditional place would be ${prefix}/etc or ${prefix}/etc/${name}.




More information about the macports-dev mailing list