# -*- 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

PortSystem          1.0
PortGroup           perl5 1.0

name                amavisd-new
version             2.11.1
revision            1
categories          mail
license             FreeBSD GPL-2+
maintainers         nomaintainer
description         amavisd-new is a high-performance interface between mailer (MTA) and content \
                    checkers: virus scanners, and/or SpamAssassin.
long_description    ${description} It is written in Perl for maintainability, without paying a \
                    significant price for speed. It talks to MTA via (E)SMTP or LMTP, or by using \
                    helper programs. Best with Postfix, fine with dual-sendmail setup and Exim v4, \
                    works with sendmail/milter, or with any MTA as a SMTP relay. For Courier and \
                    qmail MTA integration there is a patch in the distributed package.
homepage            https://amavis.org
master_sites        ${homepage}

platforms           {darwin any}
supported_archs     noarch

use_bzip2           yes

checksums           rmd160  d8f3f35df53eedf60e6af64bea96c72dc353007b \
                    sha256  91e5dbe55354abcca14cedb26cbfa221866d2f897b0a7180b6dabea0bb948ad8 \
                    size    875204

perl5.require_variant   yes
perl5.conflict_variants yes
perl5.branches          5.28 5.30 5.32 5.34
perl5.default_branch    5.34
perl5.create_variants   ${perl5.branches}

set daemon_user     _amavisd
set daemon_group    _amavisd
set amavisd_home    ${prefix}/var/amavis
add_users ${daemon_user} group=${daemon_group} realname=AMaViS\ Daemon home=${amavisd_home}

depends_run         port:p${perl5.major}-archive-zip \
                    port:p${perl5.major}-compress-raw-zlib \
                    port:p${perl5.major}-dbd-mysql \
                    port:p${perl5.major}-dbi \
                    port:p${perl5.major}-digest-md5 \
                    port:p${perl5.major}-io-compress \
                    port:p${perl5.major}-mail-dkim \
                    port:p${perl5.major}-mail-spamassassin \
                    port:p${perl5.major}-mailtools \
                    port:p${perl5.major}-mime-base64 \
                    port:p${perl5.major}-mime-tools \
                    port:p${perl5.major}-net-server \
                    port:p${perl5.major}-time-hires \
                    port:p${perl5.major}-unix-syslog

variant clamav description {Enable run-time support for clamav} {
# see ${prefix}/share/amavisd-new/amavisd.conf.example
# for configuration examples using clamd.
    depends_run-append \
                    port:clamav \
                    port:clamav-server
}

patchfiles          patch-etc-path.diff

post-patch {
    reinplace "s|@@PREFIX@@|${prefix}|" \
              ${worksrcpath}/amavisd
    reinplace "s|#!/usr/bin/perl|#!${perl5.bin}|" \
              ${worksrcpath}/amavisd \
              ${worksrcpath}/amavis-mc \
              ${worksrcpath}/amavis-services \
              ${worksrcpath}/amavisd-agent \
              ${worksrcpath}/amavisd-nanny \
              ${worksrcpath}/amavisd-release \
              ${worksrcpath}/amavisd-signer \
              ${worksrcpath}/amavisd-snmp-subagent \
              ${worksrcpath}/amavisd-snmp-subagent-zmq \
              ${worksrcpath}/amavisd-status \
              ${worksrcpath}/amavisd-submit
    file copy ${worksrcpath}/amavisd.conf ${worksrcpath}/amavisd.conf.example
    reinplace "s|\$daemon_user\  =\ 'vscan'|\$daemon_user\  =\ '${daemon_user}'|" \
              ${worksrcpath}/amavisd.conf.example
    reinplace "s|\$daemon_group\ =\ 'vscan'|\$daemon_group\  =\ '${daemon_group}'|" \
              ${worksrcpath}/amavisd.conf.example
    reinplace "s|#\ \$MYHOME\ =\ '/var/amavis'|\$MYHOME\ =\ '${amavisd_home}'|" \
              ${worksrcpath}/amavisd.conf.example
    reinplace "s|\$QUARANTINEDIR\ =\ '/var/virusmails'|\$QUARANTINEDIR\ =\ '${amavisd_home}/quarantine'|" \
              ${worksrcpath}/amavisd.conf.example
}

use_configure       no

build               {}

destroot {
    xinstall -m 750 -o ${daemon_user} -g ${daemon_group} \
        ${worksrcpath}/amavisd \
        ${destroot}${prefix}/sbin/amavisd
    xinstall -m 750 -o ${daemon_user} -g ${daemon_group} -d \
        ${destroot}${amavisd_home} \
        ${destroot}${amavisd_home}/tmp \
        ${destroot}${amavisd_home}/var \
        ${destroot}${amavisd_home}/db \
        ${destroot}${amavisd_home}/home \
        ${destroot}${amavisd_home}/quarantine
    xinstall -m 640 -o ${daemon_user} -g ${daemon_group} \
        /dev/null \
        ${destroot}${amavisd_home}/tmp/.turd_${name}
    xinstall -m 640 -o ${daemon_user} -g ${daemon_group} \
        /dev/null \
        ${destroot}${amavisd_home}/var/.turd_${name}
    xinstall -m 640 -o ${daemon_user} -g ${daemon_group} \
        /dev/null \
        ${destroot}${amavisd_home}/db/.turd_${name}
    xinstall -m 640 -o ${daemon_user} -g ${daemon_group} \
        /dev/null \
        ${destroot}${amavisd_home}/home/.turd_${name}
    xinstall -m 640 -o ${daemon_user} -g ${daemon_group} \
        /dev/null \
        ${destroot}${amavisd_home}/quarantine/.turd_${name}
    copy ${worksrcpath} ${destroot}${prefix}/share/${name}
}

post-activate {
    if {![file exists ${prefix}/etc/amavisd/amavisd.conf]} {
        file mkdir ${prefix}/etc/amavisd
        copy ${prefix}/share/amavisd-new/amavisd.conf.example \
            ${prefix}/etc/amavisd/amavisd.conf
    }
}

livecheck.url       ${master_sites}
livecheck.type      regex
livecheck.regex     "${name}-(\\d+\\.\\d+(\[0-9rc.\]+)?)${extract.suffix}"
