# -*- 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
# $Id: Portfile 102460 2013-02-03 22:40:19Z cal@macports.org $

PortSystem              1.0
PortGroup               muniversal 1.0

name                    cyrus-sasl2
version                 2.1.25
revision                4
categories              security net
platforms               darwin
# license is BSD plus a fourth (almost redundant) acknowledgement clause
license                 Permissive
maintainers             jmpp landonf openmaintainer

description             SASL is an authentication library.

long_description        SASL is the Simple Authentication and Security Layer, \
                        a method for adding authentication support to \
                        connection-based protocols. To use SASL, a protocol \
                        includes a command for identifying and authenticating \
                        a user to a server and for optionally negotiating \
                        protection of subsequent protocol interactions. If \
                        its use is negotiated, a security layer is inserted \
                        between the protocol and the connection.

homepage                http://asg.web.cmu.edu/sasl/
master_sites            http://ftp.andrew.cmu.edu/pub/cyrus-mail/ \
                        ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
distname                cyrus-sasl-${version}

checksums               rmd160  c9ed9093828f7f7bb1b35c8a690cadbcd44f3862 \
                        sha256  418c16e6240a4f9b637cbe3d62937b9675627bad27c622191d47de8686fe24fe

depends_lib             port:openssl \
                        port:zlib

default_variants        +kerberos

patchfiles              patch-config_ltconfig \
                        patch-saslauthd_config_ltconfig \
                        patch-utils_Makefile.in.diff \
                        patch-gssapi.c.diff

# fix bug when no FQDN available (#35098); should be fixed in next
# upstream release
patchfiles-append       patch-lib_saslutil.c.diff

configure.args          --mandir=${prefix}/share/man \
                        --with-openssl=${prefix} \
                        --with-dbpath=${prefix}/etc/sasldb2 \
                        --with-plugindir=${prefix}/lib/sasl2 \
                        --with-saslauthd=${prefix}/var/state/saslauthd \
                        --with-pwcheck=${prefix}/var/pwcheck \
                        --disable-macos-framework \
                        --enable-srp \
                        --enable-srp-setpass \
                        --enable-login \
                        --enable-ntlm \
                        --with-rc4=openssl

use_parallel_build      no

#universal_variant       no

# This is a start towards universal... lib/Makefile.am and sasldb/Makefile.am need to be updated to not do blind ar-fu
#post-extract {
#    system "rm ${worksrcpath}/config/libtool.m4"
#}

#use_autoreconf          yes
#autoreconf.args         -fvi
#autoreconf.env          ACLOCAL="aclocal -I${worksrcpath}/cmulocal -I${worksrcpath}/config"

# This is a horrible hackaround as replacing the ar-fu as mentioned above is non-trivial
pre-build {
    if {[variant_isset universal]} {
        foreach arch ${universal_archs_to_use} {
            reinplace -E "s|^CC=\\\"(\[^\\\"\]+)\\\"|CC=\"\\1 [muniversal_get_arch_flag ${arch}]\"|g" ${worksrcpath}-${arch}/libtool
        }
    } else {
        reinplace -E "s|^CC=\\\"(\[^\\\"\]+)\\\"|CC=\"\\1 ${configure.cc_archflags}\"|g" ${worksrcpath}/libtool
    }
}

destroot.keepdirs       ${destroot}${prefix}/var/state/saslauthd \
                        ${destroot}${prefix}/var/pwcheck

post-destroot {
    xinstall -d \
        ${destroot}${prefix}/share/doc \
        ${destroot}${prefix}/var/state/saslauthd \
        ${destroot}${prefix}/var/pwcheck
    
    file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/${name}
}

variant kerberos description "Enable Kerberos support" {
    configure.args-append   --enable-keep-db-open
    
    if {${os.platform} == "darwin"} {
        depends_lib-append  port:kerberos5
        configure.args-append --with-gss_impl=mit \
            --enable-gssapi=${prefix}
    }
    if {${os.platform} == "freebsd"} {
        depends_lib-append  port:heimdal
        configure.args-append --with-gss_impl=heimdal \
            --enable-gssapi=${prefix}/libexec/heimdal
    }
}

variant sql description "Enable SQL support" {
    depends_lib-append      port:sqlite3
    configure.args-append   --enable-sql
}

# doesn't work, ticket #22093
#variant static description "Build static library" {
#    configure.args-append   --enable-static
#}

livecheck.type          regex
livecheck.url           http://ftp.andrew.cmu.edu/pub/cyrus-mail/
livecheck.regex         {cyrus-sasl-(\d+(?:\.\d+)*)\.tar\.gz}
