# $Id$ PortSystem 1.0 name postfix version 2.7.1 revision 1 categories mail license IBMPL-1.0 maintainers jmr openmaintainer description Fast and robust mail transfer agent long_description Postfix attempts to be fast, easy to administer, and \ secure, while at the same time being \ sendmail-compatible enough to not upset existing \ users. It also offers QMQP and VERP support to let \ Postfix act as delivery daemon for ezmlm-idx. homepage http://www.postfix.org/ platforms darwin checksums md5 b7a5c3ccd309156a65d6f8d2683d4fa1 \ sha1 94259e8f008b5b1853292e3de5e0ae3abcfe8c81 \ rmd160 dba0622cf6e21908f27bee0c9da42ab3c189d4bd master_sites http://archive.mgm51.com/mirrors/postfix-source/official/ \ http://de.postfix.org/ftpmirror/official/ \ ftp://ftp.its.cz/MIRRORS/ftp.porcupine.org/mirrors/postfix-release/official/ \ ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/official/ \ http://mirror.postfix.jp/postfix-release/official/ \ http://postfix.bbnx.net/source/official/ patchfiles patch-sys_defs.h patch-mail_params.h patch-postfix-install post-patch { eval reinplace "s|/etc/|${prefix}/etc/|g" \ [glob ${worksrcpath}/man/man1/*] \ [glob ${worksrcpath}/man/man5/*] \ [glob ${worksrcpath}/man/man8/*] reinplace "s|__PREFIX|${prefix}|g" ${worksrcpath}/src/util/sys_defs.h \ ${worksrcpath}/src/global/mail_params.h reinplace "s|ls |/bin/ls |g" \ ${worksrcpath}/conf/postfix-script # Set main.cf default values reinplace "s|#default_privs|default_privs|g" \ ${worksrcpath}/conf/main.cf reinplace "s|/etc/postfix/network_table|${prefix}/etc/postfix/network_table|g" \ ${worksrcpath}/conf/main.cf reinplace "s|/etc/postfix/relay_recipients|${prefix}/etc/postfix_relay_recipients|g" \ ${worksrcpath}/conf/main.cf reinplace "s|/etc/postfix/header_checks|${prefix}/etc/postfix/header_checks|g" \ ${worksrcpath}/conf/main.cf reinplace "s|PATH=/bin:/usr/bin|PATH=${prefix}/bin:/bin:/usr/bin|g" \ ${worksrcpath}/conf/main.cf } set CCARGS [list -DNO_PCRE] set AUXLIBS [list "-L${prefix}/lib" "-R${prefix}/lib" "-L${prefix}/lib"] if {[variant_isset universal]} { set CCARGS [concat ${CCARGS} ${configure.universal_cflags}] set AUXLIBS [concat ${AUXLIBS} ${configure.universal_ldflags}] } else { set CCARGS [concat ${CCARGS} ${configure.cc_archflags}] set AUXLIBS [concat ${AUXLIBS} ${configure.ld_archflags}] } set pf_mail_owner "_postfix" set pf_setgid_group "_postdrop" set config_files [list main.cf master.cf access aliases canonical generic \ header_checks relocated transport virtual] # Beginning with Mac OS X 10.5, the user 'postfix' changed to '_postfix' platform darwin 8 { global pf_mail_owner global pf_setgid_group set pf_mail_owner "postfix" set pf_setgid_group "postdrop" } platform darwin 10 { lappend AUXLIBS -lresolv } configure { system "cd ${worksrcpath} && make makefiles CC='${configure.cc}' \ OPT='${configure.optflags}' CCARGS='${CCARGS}' AUXLIBS='${AUXLIBS}'" } build.target startupitem.create yes startupitem.start "${prefix}/sbin/${name} start" startupitem.stop "${prefix}/sbin/${name} stop" destroot { destroot.keepdirs ${destroot}${prefix}/var/spool/postfix/public \ ${destroot}${prefix}/var/spool/postfix/maildrop \ ${destroot}${prefix}/var/lib/postfix system "cd ${worksrcpath} && /bin/sh postfix-install -non-interactive \ install_root=${destroot} \ config_directory=${prefix}/etc/postfix \ queue_directory=${prefix}/var/spool/postfix \ command_directory=${prefix}/sbin \ daemon_directory=${prefix}/libexec/postfix \ data_directory=${prefix}/var/lib/postfix \ sendmail_path=${prefix}/sbin/sendmail \ newaliases_path=${prefix}/bin/newaliases \ mailq_path=${prefix}/bin/mailq \ etc_directory=${prefix}/etc/postfix \ share_directory=${prefix}/share/postfix \ manpage_directory=${prefix}/share/man \ sample_directory=${prefix}/share/postfix/sample \ readme_directory=${prefix}/share/postfix/readme \ mail_owner=${pf_mail_owner} \ setgid_group=${pf_setgid_group}" # This makes sure we don't overwrite user cf files. foreach f $config_files { move ${destroot}${prefix}/etc/postfix/${f} \ ${destroot}${prefix}/etc/postfix/${f}.sample } } pre-install { system "chown ${pf_mail_owner} ${destroot}${prefix}/var/spool/postfix/public/.turd_postfix" } post-activate { foreach f $config_files { if {![file exists ${prefix}/etc/postfix/${f}]} { copy ${prefix}/etc/postfix/${f}.sample \ ${prefix}/etc/postfix/${f} } } } # Tell the user about renaming the sample configuration files. notes \ "To get postfix working, you need to edit the configuration files (${prefix}/etc/postfix/*). You may also want to turn off Apple's built-in MTA. For example: sudo launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist" variant pcre description "add pcre support" { set CCARGS [ldelete ${CCARGS} -DNO_PCRE] lappend CCARGS -DHAS_PCRE "-I${prefix}/include" lappend AUXLIBS "-L${prefix}/lib" -lpcre depends_lib-append port:pcre } variant tls description "add tls support via openssl" { depends_lib-append port:openssl lappend CCARGS -DUSE_TLS -DHAS_SSL "-I${prefix}/include" lappend AUXLIBS -lssl -lcrypto } variant sasl description "add sasl support via cyrus-sasl2" { depends_lib-append port:cyrus-sasl2 lappend CCARGS -DUSE_CYRUS_SASL -DUSE_SASL_AUTH "-I${prefix}/include/sasl" lappend AUXLIBS -lsasl2 } variant ldap description "add ldap support via openldap" { depends_lib-append port:openldap lappend CCARGS -DHAS_LDAP lappend AUXLIBS -lldap -llber } variant mysql5 description "add mysql support via mysql5" { depends_lib-append path:bin/mysql_config5:mysql5 lappend CCARGS -DHAS_MYSQL "-I${prefix}/include/mysql5/mysql" lappend AUXLIBS "-L${prefix}/lib/mysql5/mysql" -lmysqlclient -lz -lm } variant postgresql83 conflicts postgresql84 description "add postgresql support via postgresql83" { depends_lib-append port:postgresql83 lappend CCARGS -DHAS_PGSQL "-I${prefix}/include/postgresql83" lappend AUXLIBS "-L${prefix}/lib/postgresql83" -lpq } variant postgresql84 conflicts postgresql83 description "add postgresql support via postgresql84" { depends_lib-append port:postgresql84 lappend CCARGS -DHAS_PGSQL "-I${prefix}/include/postgresql84" lappend AUXLIBS "-L${prefix}/lib/postgresql84" -lpq } variant dovecot_sasl description "add Dovecot SASL support" { lappend CCARGS -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE="dovecot" }