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

PortSystem 1.0

name            wireshark-devel
epoch           2
version         1.9.0
revision        5
patchfiles      patch-configure.diff
categories      net
license         {GPL-2 GPL-3}
maintainers     gmail.com:hsivank
description     Graphical network analyzer and capture tool
homepage        http://wireshark.org/
platforms       darwin
distname        wireshark-${version}
dist_subdir     wireshark

long_description A network analyzer that lets you capture and \
                 interactively browse Ethernet frames. \
                 Packet data can be read from a file, or live from a local \
                 network interface.

master_sites    http://www.wireshark.org/download/src/ \
                http://www.wireshark.org/download/src/all-versions/

use_bzip2       yes

checksums       rmd160  56f62e9a1bc2dfedcbd1856dd06c42869a2cdde2 \
                sha256  0a21aa84e78de2ae2f758e5f21edf2ec5c26a372fbfbb30a53a9b67a128e4538

conflicts       wireshark

depends_build   port:pkgconfig

depends_lib     port:c-ares \
                path:lib/pkgconfig/glib-2.0.pc:glib2 \
                port:gtk2 \
                path:lib/libssl.dylib:openssl \
                port:libpcap \
                port:kerberos5 \
                port:zlib

configure.args  \
                --disable-usr-local \
                --without-adns \
                --with-c-ares=${prefix} \
                --without-pcre \
                --disable-ipv6 \
                --with-pcap=${prefix} \
                --with-ssl=${prefix} \
                --with-zlib=${prefix} \
                --mandir=\\\${prefix}/share/man \
                --infodir=\\\${prefix}/share/info \
                --without-portaudio \
                --disable-warnings-as-errors \
                --with-krb5=${prefix} \
                --without-gnutls \
                --without-python

configure.ldflags-append "-Wl,-search_paths_first"

variant adns description {use adns library for async. dns resolution instead of the default c-ares library} {
        configure.args-delete   --without-adns \
                                --with-c-ares=${prefix}
        configure.args-append   --with-adns=${prefix} \
                                --without-c-ares
        depends_lib-delete      port:c-ares
        depends_lib-append      port:adns
}

variant gnutls {
        configure.args-append   --with-gnutls=yes
        depends_lib-append      port:gnutls
}

variant libgcrypt {
        configure.args-append   --with-libgcrypt-prefix=${prefix}
        depends_lib-append      port:libgcrypt
}

variant ipv6 {
        configure.args-append   --enable-ipv6
        configure.args-delete   --disable-ipv6
}

variant lua {
        configure.args-append   --with-lua=${prefix}
        depends_lib-append      port:lua
}

variant pcre {
        configure.args-append   --with-pcre=${prefix}
        configure.args-delete   --without-pcre
        depends_lib-append      port:pcre
}

variant rtp description {add rtp support with portaudio} {
        configure.args-append   --with-portaudio=${prefix}
        configure.args-delete   --without-portaudio
        depends_lib-append      port:portaudio
}

variant no_ssl {
        configure.args-append --without-ssl
        depends_lib-delete      path:lib/libssl.dylib:openssl
}

variant no_gui description {Disable GTK GUI} {
        depends_lib-delete      port:gtk2
        configure.args-delete   --disable-gtk2
        configure.args-append   --disable-wireshark
}

variant libsmi {
        depends_lib-append port:libsmi
        configure.args-append --with-libsmi
}

# TODO: Remove after 2016-01-04.
variant python25 requires python27 description {Legacy variant} {}
variant python26 requires python27 description {Legacy variant} {}

variant python27 description {use python27 for the experimental python interface} {
        configure.python        ${prefix}/bin/python2.7
        depends_lib-append      port:python27
}

pre-configure {
        if {[variant_isset python27]} {
                configure.args-append   --with-python
                configure.args-delete   --without-python
                reinplace "s|python-config|python2.7-config|g" ${worksrcpath}/configure
        }
}

pre-destroot {
        if {[variant_isset python27]} {
                 reinplace "s|libwireshark.dylib|${prefix}/lib/libwireshark.dylib|g" ${worksrcpath}/epan/wspython/wspy_libws.py
        }
}

post-destroot {
        xinstall -d ${destroot}${prefix}/include/wireshark/epan/crypt/ \
                    ${destroot}${prefix}/include/wireshark/epan/dfilter/ \
                    ${destroot}${prefix}/include/wireshark/epan/dissectors/ \
                    ${destroot}${prefix}/include/wireshark/epan/ftypes/ \
                    ${destroot}${prefix}/include/wireshark/wiretap/
        xinstall -m 644 -W ${worksrcpath}/ color.h config.h register.h ${destroot}${prefix}/include/wireshark/
        eval xinstall -m 644 [glob ${worksrcpath}/epan/*.h] ${destroot}${prefix}/include/wireshark/epan/
        eval xinstall -m 644 [glob ${worksrcpath}/epan/crypt/*.h] ${destroot}${prefix}/include/wireshark/epan/crypt/
        eval xinstall -m 644 [glob ${worksrcpath}/epan/dfilter/*.h] ${destroot}${prefix}/include/wireshark/epan/dfilter/
        eval xinstall -m 644 [glob ${worksrcpath}/epan/dissectors/*.h] ${destroot}${prefix}/include/wireshark/epan/dissectors/
        eval xinstall -m 644 [glob ${worksrcpath}/epan/ftypes/*.h] ${destroot}${prefix}/include/wireshark/epan/ftypes/
        eval xinstall -m 644 [glob ${worksrcpath}/wiretap/*.h] ${destroot}${prefix}/include/wireshark/wiretap/
}