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

name                pidgin
version             2.14.14
revision            0
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  15a79844e24846ff86b74f636086acf0b138edb9 \
                    sha256  0ffc9994def10260f98a55cd132deefa8dc4a9835451cc0e982747bd458e2356 \
                    size    8121174

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.

perl5.major         5.34

depends_build       port:pkgconfig \
                    port:intltool \
                    port:autoconf \
                    port:automake \
                    port:libtool \
                    port:gettext \
                    port:gsed \
                    port:python311

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

patchfiles          patch-configure.ac.diff \
                    patch-libpurple-internal.h.diff \
                    patch-pidgin-gtkdocklet-gtk.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-gevolution \
                    --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-python3=${prefix}/bin/python3.11 \
                    --without-x

configure.args-append ac_cv_path_perlpath=${perl5.bin}

configure.ldflags-append    -bind_at_load

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:libgnt \
                            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 \
                            path:lib/pkgconfig/gtk+-2.0.pc: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-2.0 -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+)*)\/"
