# -*- 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
PortGroup           legacysupport    1.0

name                cyrus-imapd
version             2.4.20
revision            4
perl5.branches      5.28
categories          mail
platforms           darwin
license             BSD-old
maintainers         nomaintainer

description         The Cyrus IMAP Server
long_description    Popular, scalable, open standars based IMAP & POP3 mail server \
                    developed by The Carnegie Mellon University.

homepage            https://cyrusimap.org/
master_sites        https://www.cyrusimap.org/releases/ \
                    ftp://ftp.cyrusimap.org/cyrus-imapd/

checksums           rmd160  0dc74400acdfaef176266f536ef90f6dded6014c \
                    sha256  3a09146701cda2416d1a2be81f066e14397b211d72c714c54bac09fc65d8dd5e \
                    size    2488878

depends_build       port:makedepend

depends_lib         port:perl${perl5.major} \
                    port:cyrus-sasl2 \
                    port:db48 \
                    path:lib/libssl.dylib:openssl

patchfiles          patch-depot-Makefile.in.diff \
                    patch-lib-charset.c.diff

post-patch {
    foreach dir {contrib contrib/cyrus-graphtools.1.0/cgi-bin contrib/cyrus-graphtools.1.0/script perl/imap/examples perl/sieve/scripts tools} {
        reinplace "s|^#!.*perl|#!${perl5.bin}|" {*}[glob -d ${worksrcpath}/${dir} *.pl]
    }
}

# wrong number of arguments at (eval 1) line 41, <DATA> line 256.
configure.ccache    no

configure.args      --mandir=${prefix}/share/man \
                    --sysconfdir=${prefix}/etc/cyrus \
                    --with-cyrus-prefix=${prefix} \
                    --with-pidfile=${prefix}/var/run/cyrus-master.pid \
                    --with-bdb-incdir=${prefix}/include/db48 \
                    --with-bdb-libdir=${prefix}/lib/db48 \
                    --with-perl=${perl5.bin} \
                    --with-sasl=${prefix} \
                    --with-openssl=${prefix} \
                    --with-cyrus-user=cyrus \
                    --with-cyrus-group=mail \
                    --enable-cmulocal \
                    --enable-netscapehack \
                    --with-snmp=no \
                    --disable-sieve \
                    --disable-gssapi \
                    --with-com_err

startupitem.create  yes
startupitem.name    cyrus
startupitem.requires Disks Network "System Log"
startupitem.start   "${prefix}/bin/master -d"
startupitem.stop    "pidfile=${prefix}/var/run/cyrus-master.pid
            if \[ -f \${pidfile} \]; then
               kill -TERM \$(cat \${pidfile})
            fi"

add_users cyrus group=cyrus home=${prefix}/var/imap shell=/usr/bin/false passwd="\*"

post-destroot   {
        xinstall -m 755 -v ${worksrcpath}/tools/mkimap ${destroot}${prefix}/bin
        reinplace "s|/etc/imapd.conf|${prefix}/etc/cyrus/imapd.conf|" ${destroot}${prefix}/bin/mkimap
        xinstall -m 755 -v ${worksrcpath}/tools/mknewsgroups ${destroot}${prefix}/bin
        xinstall -m 755 -v ${worksrcpath}/tools/dohash ${destroot}${prefix}/bin
        xinstall -m 755 -v ${worksrcpath}/tools/rehash ${destroot}${prefix}/bin
        xinstall -m 755 -v ${worksrcpath}/tools/upgradesieve ${destroot}${prefix}/bin
        xinstall -d -m 755 ${destroot}${prefix}/share/doc/
        file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/${name}
        foreach d [glob -directory ${destroot}${prefix}/share/doc/${name} -type d *] { file delete -force ${destroot}${prefix}/share/doc/${name}/html ${destroot}${prefix}/share/doc/${name}/CVS $d/CVS }
        xinstall -d -m 755 ${destroot}${prefix}/etc/cyrus/samples
        foreach f [glob -directory ${worksrcpath}/master/conf -type f *.conf] {
            xinstall -m 644 -v $f ${destroot}${prefix}/etc/cyrus/samples/[file tail $f].sample
        }
        xinstall -d -m 750 -o cyrus -g mail ${destroot}${prefix}/var/imap
        xinstall -d -m 750 -o cyrus -g mail ${destroot}${prefix}/var/spool/imap
        destroot.keepdirs ${destroot}${prefix}/var/run ${destroot}${prefix}/var/imap \
        ${destroot}${prefix}/var/spool/imap ${destroot}${prefix}/var/log
        delete {*}[glob ${destroot}${prefix}/lib/perl5/*/*/perllocal.pod]
}

platform powerpc {
        configure.args-append --build=powerpc
}

variant murder description {Enable IMAP Murder support} {
        configure.args-append --enable-murder
}

platform i386 {
        configure.args-append --build=i386
}

variant snmp description {Use Net SNMP (currently broken)} {
        depends_lib-append      port:net-snmp
        configure.args-delete   --with-snmp=no
        configure.args-append   --with-snmp=yes
}

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

##
# Miscellaneous notes:
# -) Port is itself bare bones, suport for many other things could be added (maybe as variants), so suggest away!
##