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

name                mutt
version             2.2.14
categories          mail
license             GPL-2+
maintainers         {l2dy @l2dy}
description         The Mutt E-Mail Client
long_description    Mutt is a small but very powerful text-based MIME \
                    mail client. Mutt is highly configurable, and is \
                    well suited to the mail power user with advanced \
                    features like key bindings, keyboard macros, mail \
                    threading, regular expression searches and \
                    a powerful pattern matching language for selecting \
                    groups of messages.
homepage            http://www.mutt.org
master_sites        https://bitbucket.org/mutt/mutt/downloads/

# Does not conflict with neomutt without the 'mutt' variant

checksums           rmd160  ca594b8f4ec0cba001513dc893b892e45c7dd19c \
                    sha256  d162fb6d491e3af43d6f62f949b7e687bb0c7c2584da52c99a99354a25de14ef \
                    size    5549971

depends_lib         port:gettext \
                    port:libiconv \
                    port:ncurses

depends_run         path:share/curl/curl-ca-bundle.crt:curl-ca-bundle

configure.args      --disable-hcache \
                    --enable-sidebar \
                    --with-docdir=${prefix}/share/doc/mutt \
                    --with-curses=${prefix}

default_variants    +pop +imap +smtp +idn

if {![variant_isset gnutls] && ![variant_isset ssl]} {
    default_variants-append +gnutls
}

if {![variant_isset gdbm] && ![variant_isset lmdb] && ![variant_isset db4]} {
    default_variants-append +gdbm
}

post-destroot {
    delete {*}[glob ${destroot}${prefix}/etc/mime.types]
    # delete horribly outdated ca bundle, I hope people weren't using that!
    delete ${destroot}${prefix}/share/doc/mutt/samples/ca-bundle.crt
}

variant idn description {Internationalized Domain Name support} {
    configure.args-append   --with-idn=${prefix}
    depends_lib-append      port:libidn port:zlib
}

variant pop description {POP support} {
    configure.args-append   --enable-pop
}

variant imap description {IMAP support} {
    configure.args-append   --enable-imap
}

variant ssl conflicts gnutls description {Enable TLS support using OpenSSL} {
    configure.args-append   --with-ssl=${prefix}
    depends_lib-append      path:lib/libssl.dylib:openssl
}

variant gnutls conflicts ssl description {Enable TLS support using GnuTLS} {
    configure.args-append   --with-gnutls=${prefix}
    depends_lib-append      path:lib/pkgconfig/gnutls.pc:gnutls
}

variant sasl description {Simple Authentication and Security Layer support} {
    configure.args-append   --with-sasl=${prefix}
    depends_lib-append      port:cyrus-sasl2
}

variant debug description {Debugging support} {
    configure.args-append   --enable-debug
}

variant gdbm conflicts lmdb db4 description {Use GNU dbm database} {
    configure.args-replace  --disable-hcache --enable-hcache
    configure.args-append   --with-gdbm
    depends_lib-append      port:gdbm
}

variant lmdb conflicts gdbm db4 description {Use LMDB database} {
    configure.args-replace  --disable-hcache --enable-hcache
    configure.args-append   --with-lmdb
    depends_lib-append      port:lmdb
}

variant db4 conflicts gdbm lmdb description {Use Berkeley DB database} {
    configure.args-replace      --disable-hcache --enable-hcache
    configure.args-append       --with-bdb=${prefix}
    configure.cppflags-append   "-I${prefix}/include/db48"
    configure.ldflags-append    "-L${prefix}/lib/db48"
    depends_lib-append          port:db48
}

# Tokyo Cabinet, Kyoto Cabinet, and QDBM support was removed intentionally, see
# https://seclists.org/oss-sec/2018/q2/206.

variant smtp description {Include internal SMTP relay support} {
    configure.args-append   --enable-smtp
}

variant sqlite3 description {Enable sqlite3 support} {
    configure.args-append   --with-sqlite3=${prefix}
    depends_lib-append      port:sqlite3
}

variant autocrypt requires sqlite3 gpgme description {Enable autocrypt support} {
    configure.args-append   --enable-autocrypt
}

variant gpgme description {Enable GPGME crypto support} {
    configure.args-append   --enable-gpgme
    depends_lib-append      port:gpgme
}

livecheck.url       ${homepage}/download.html
livecheck.type      regex
livecheck.regex     {The current stable public release version is (\d+(?:\.\d+)*)}
