# -*- 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                pidgin
version             2.13.0
revision            2
categories          net
platforms           darwin
license             GPL-2+
maintainers         {devans @dbevans} openmaintainer
description         Multi-protocol Instant Messaging client
long_description    Pidgin is an Open Source clone of America OnLine's \
                    Instant Messenger client that uses GTK+ version 2.  It \
                    features multiple groups, group chat, user information \
                    fetching and registration, time stamping, and more.  It \
                    also supports other IM protocols, including Yahoo!, \
                    ICQ, Jabber, Napster, IRC, and Zephyr via included \
                    plugins.

homepage            https://www.pidgin.im/
master_sites        sourceforge:project/pidgin/Pidgin/${version}

checksums           rmd160  48f1c281fb018257b2757c4c93ad1501f9f5a356 \
                    sha256  2747150c6f711146bddd333c496870bfd55058bab22ffb7e4eb784018ec46d8f \
                    size    8994457

use_bzip2           yes

# Python is only required if --enable-dbus is used, and only for
# the build process to generate the dbus code, not for running pidgin.

# set 'pbranch' to desired perl version for perl plugin support
# currently 5.26 (#55208)

set pbranch         5.28

depends_build       port:pkgconfig \
                    port:intltool \
                    port:autoconf \
                    port:automake \
                    port:libtool \
                    port:gsed \
                    port:python27

depends_lib         path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    port:libxml2 \
                    port:gconf \
                    port:libidn \
                    port:gnutls \
                    port:perl${pbranch}

patchfiles          patch-configure.ac.diff \
                    patch-libpurple-internal.h.diff \
                    patch-pidgin-gtkdocklet-gtk.c.diff \
                    patch-finch_libgnt_Makefile.am.diff \
                    patch-finch_libgnt_gntwm.c.diff

# reconfigure using upstream autogen.sh for intltool 0.51 compatibility

post-patch {
    xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath}
}

configure.cmd       ./autogen.sh

# --disable-dependency-tracking was added because a +universal perl will result in
# PERL_CFLAGS containing multiple -arch arguments... this is the easiest workaround

configure.args      --disable-avahi \
                    --disable-consoleui \
                    --disable-dependency-tracking \
                    --disable-farstream \
                    --disable-gstreamer \
                    --disable-gstreamer-interfaces \
                    --disable-gtkspell \
                    --disable-meanwhile \
                    --disable-nm \
                    --disable-nss \
                    --disable-schemas-install \
                    --disable-screensaver \
                    --disable-silent-rules \
                    --disable-sm \
                    --disable-startup-notification \
                    --disable-tcl \
                    --disable-tk \
                    --disable-vv \
                    --mandir=${prefix}/share/man \
                    --with-python=${prefix}/bin/python2.7 \
                    --without-x

configure.args-append ac_cv_path_perlpath=${prefix}/bin/perl${pbranch}

configure.ldflags-append    -bind_at_load
configure.cppflags-append   -no-cpp-precomp

subport libpurple {
    depends_lib-append      port:tcl \
                            port:tk

    configure.args-delete   --disable-tcl \
                            --disable-tk
    configure.args-append   --disable-gtkui \
                            --disable-nls \
                            --disable-pixmaps-install \
                            --enable-tcl \
                            --enable-tk \
                            --with-tclconfig=${prefix}/lib \
                            --with-tkconfig=${prefix}/lib
}

subport finch {
    depends_lib-append      port:libpurple \
                            port:ncurses

    configure.args-delete   --disable-consoleui
    configure.args-append   --disable-gtkui \
                            --disable-pixmaps-install \
                            --disable-nls \
                            --disable-gestures \
                            --enable-consoleui \
                            --with-ncurses-headers=${prefix}/include
}

if {${subport} eq $name} {
    depends_lib-append      port:libpurple \
                            port:audiofile \
                            port:gtk2 \
                            port:libao

    variant x11 conflicts quartz {
        depends_lib-append      port:xorg-libX11 \
                                port:xorg-libXext \
                                port:xorg-libXScrnSaver \
                                port:xorg-libice \
                                port:xorg-libsm

        configure.args-delete   --without-x \
                                --disable-screensaver \
                                --disable-sm

        configure.args-append   --with-x \
                                --x-includes=${prefix}/include \
                                --x-libraries=${prefix}/lib \
                                --enable-screensaver \
                                --enable-sm
    }

    if {[variant_isset quartz]} {
        default_variants -x11
    } else {
        default_variants +x11
    }

    variant quartz conflicts x11 {
        configure.args-append   --disable-gestures
    }

    variant spellcheck description {Allow spell checking} {
        depends_lib-append      port:gtkspell2
        configure.args-delete   --disable-gtkspell
    }

    post-activate {
        system "dbus-uuidgen --ensure"
        system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
        system "export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` && \
            gconftool-2 --makefile-install-rule ${prefix}/etc/gconf/schemas/*.schemas"
    }
}
    
if {${subport} ne "libpurple"} {
    post-destroot {
        foreach file [glob -nocomplain -directory ${destroot}${prefix}/bin purple-*] {
            delete $file
        }
        foreach file [glob -nocomplain -directory ${destroot}${prefix}/lib pkgconfig/purple.pc libpurple* purple-2] {
            delete $file
        }
        delete ${destroot}${prefix}/include/libpurple \
               ${destroot}${prefix}/share/aclocal \
               ${destroot}${prefix}/share/man/man3/Purple.3pm \
               ${destroot}${prefix}/share/purple \
               ${destroot}${prefix}/share/sounds/purple \
    }
}

post-destroot {
    fs-traverse file ${destroot}${prefix}/lib/perl5 {
        if {[file tail ${file}] == "perllocal.pod"} {
            delete ${file}
        }
    }
}

livecheck.type      regex
livecheck.url       http://sourceforge.net/projects/pidgin/files/Pidgin/
livecheck.regex     "\/Pidgin\/(\\d+(?:\\.\\d+)*)\/"